简单回忆一下,上节的内容:
1.TCP,UDP,IP,ICMP,IGMP的介绍;
2.FTP的TCP服务器的端口号是:21,Telnet的TCP服务器端口号是:23;
3.BOOTP 的两个熟悉的端口号,67是服务器端口号,68是客户端口号等等。
这一节我们围绕数据链路层,做相关的介绍。
链路层为上层的网络层提供了发送和接受IP数据报的功能,并且可以对ARP/RARP发送请求,和接受ARP/RARP应答。TCP/IP协议支持多种不同的链路层协议,这取决于网络所使用的硬件,例如以太网,令牌环网。
以下将详细讨论以太网链路层协议,PPP,SLIP,环回驱动程序,MTU(最大传输单元)。
三个基本问题:封装成帧,透明传输,差错控制。
封装成帧:将从网络层得到的IP数据报作为数据部分添加首部(SOF)和尾部(EOT)变成帧。首部和尾部的重要作用就是帧定界,真的数据部分(IP数据报<=1500byte)
透明传输:若帧的数据部分出现了首部或尾部的控制字符,被接收的帧会被误认,此时我们需要在前面添加一个转义字符ESC(其十六进制编码是1B),接收端的数据链路层将在数据送往网络层之前删除插入的转义字符,如果转义字符也出现在数据当中就在转义字符前再插入转义字符,同理在接收端数据链路层传递给网络层之前删除一个转义字符。
差错检测:在传输过程中会出现比特差错:1变成0,0变成1。为保证数据传输的可靠性必须有差错检测机制。广泛使用循环冗余检验CRC的检测技术,通过该技术得到FCS(帧检验序列)来判断数据是否出现差错,但并不是可靠传输,因为没有确认和重传机制。
1.以太网(ethernet)和IEEE802.3系列标准类似,以太网是局域网,使用广泛,以太网使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10M/S的速率运行在多种类型的电缆上。CSMA/CD技术可以形象的理解为:先听后说,边听边说;一旦冲突,立即停说;等待时机,然后再说;*"听",即监听、检测之意;“说”,即发送数据之意。以太网上封装IP数据报的标准由RFC894规定(https://tools.ietf.org/html/rfc894),该RFC说明了IP数据报是被以太网帧传输的(IP数据报封装成以太网帧)。
以太网的MAC地址(硬件地址,物理地址),
2.PPP:标志字段:0x7E,地址:0xFF,控制一般是:0x03;协议字段是两个字节:0x0021表示信息字段是IP数据报,0xC021表示信息字段是PPP链路控制数据,0x8021表示信息字段是网络控制数据。
字符填充:0x7E->0x7D,0x5E,0x7D->0x7D,0x5D,若出现小于0x20,在前面加一个0x7D
零比特填充:如果发现5个连续的1就在后面填一个0