Computer Network
网原笔记
分层模型
中文 | English | data | Protocol or Device |
---|---|---|---|
应用层 | Application Layer | SMTP, FTP, DNS | |
表示层 | Presentation Layer | JPEG, MPEG, GIF | |
会话层 | Session Layer | NetBIOS, PPTP | |
传输层 | Transport Layer | Segment | TCP, UDP NetBIOS, PPTP |
网络层 | Network Layer | Packet | Routers and Switches |
数据链路层 | Data Link Layer | Frame | Switches and Bridges |
物理层 | Physics Layer | Bit | Hub, Repeater, and Cables |
其中数据链路层Data Link Layer
又被分为两个子层Logic Link Control(LLC)
和Media Access Control(MAC)
。
How data flows in the OSI model
- Application Layer: Applications create the data.
- Presentation Layer: Data is formatted and encrypted.
- Session Layer: Connections are established and managed.
- Transport Layer: Data is broken into segments for reliable delivery.
- Network Layer: Segments are packaged into packets and routed.
- Data Link Layer: Packets are framed and sent to the next device.
- Physical Layer: Frames are converted into bits and transmitted physically.
网络设备
repeater(中继器)
- 中继器仅在物理层工作,用于再生微弱信号。
hub(集线器)
- 集线器是多端口的中继器,用于将多个设备连接在一起。
- 集线器是广播设备,它将接收到的数据包发送到所有端口(除了输入端口),因此若有多个设备发送数据包,会发生冲突,需要CSMA/CD。
- 一般支持半双工通信。
需要CSMA/CD的情况
- 当多个设备连接到集线器时,集线器会将数据包发送到所有端口,因此可能会发生冲突。
- 半双工线路上的设备可能会同时发送数据包。
bridge(网桥)
- 网桥充当两个局域网之间的桥梁,并帮助连接它们以相互传输数据。
switch(交换机)
- 交换机可以分为二层交换机和三层交换机两种分类方式。二层交换机和三层交换机分别用于数据链路层和网络层。
- 交换机的功能是转发数据,端口隔离。
- 不同于集线器的广播,当交换机工作的时候,只有发出请求的端口与目的端口之间相互响应。
- 支持全双工通信。
- 与网桥相比,第二层交换机在网络上提供更好的性能,可连接多个设备并根据其接收的帧的
MAC 地址做出过滤决策。
- 三层交换机在网络层充当路由器,处理能力更快。它会快速检查帧的地址,并从表中查找 MAC 地址(如果可用)。
router(路由器)
- 工作在网络层,根据IP地址在网络上转发数据包。
参考
Network Devices (Repeater, Hub, Bridge, NIC, Switch, Router and Gateway)
数据链路层协议
1bit滑动窗口
由于发送缓冲区长度为1,所以要想捎带ack,只能重复发送那个尚未得到确认的帧。当双方同时开始发时,会有一半的重复帧。
退后n帧重传
- 要求发送窗口尺寸<序号个数。
- 当连续发送n个帧时,比如1-n,这时会收到的ack有一个范围0-n,0是考虑到1丢失的情况。此时需要保证0和n的ack不重复,即n<序号个数。
注意只会超时的时候退后n帧重传。
选择重传
- 当发送窗口>=接收窗口时,接收窗口尺寸<=序号个数/2,发送窗口尺寸<序号个数。
- 例如,发送窗口尺寸为序号个数-1,接收窗口尺寸为序号个数/2。
- 例如,发送窗口尺寸为序号个数-1,接收窗口尺寸为序号个数/2。
- 当发送窗口<接收窗口时,接收窗口尺寸+发送窗口<=序号个数。
- 发送窗口大于接收窗口其实没太大意义,超出的部分都是会被重传的。
- 考虑发送窗口m小于接收窗口n。原先接收窗口为0-(n-1),发送窗口发完一轮0-(m-1)后接收窗口为m-(m+n-1),若确认帧丢失,发送窗口会重传0,这个0不能和m-(m+n-1)重复,所以m+n<=序号个数。
在超时和接收到NAK时进行选择重传
ack计时器启动:收到帧等于窗口下界或者发nak后 ??