标签:tcp/ip
一、数据链路层
当需要在一条线路上传递数据时,除了必须使用一条物理设备时,还需要一些必要的通信协议来控制数据的传输,若把实现这些协议的硬件和软件的加到链路上,就叫做数据链路;最常用的是-----网络适配器。一般适配器都包含了数据链路层和物理层这两层的功能。
物理层的包含多种与物理介质相关的协议和标准
物理层协议分类:
电磁与光学协议(电流、光调制、编码)
机械协议(链接介质机械标准,大小、形状、化学成分)
功能性的协议
程序性协议(比如二进制数1,表示的电压)
eg:EIA/TIA-232
V.35
RJ45
数据链路层协议:
负责对上层如何成帧
负责对下层控制对介质的访问
错误发现(不能纠正)
eg:
以太网,802.3,802.2
HDLC/PPP
Frame-Relay
二、数据传输
数据传输分两种方式:点对点,广播通信
点对点信道
主要协议:PPP协议,SLIP (这两个都属于串行接口链路协议)
点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)
2.广播信道
主要协议:以太网协议、IEEE802.3
3. 以太网帧格式:
以太网不是唯一的数据链路层协议,但是使用是最广泛的。
根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步码 + 1字节帧开始定界符 + 6字节的目的MAC + 6字节的源MAC + 2字节的帧类型 + 1500 + 4字节的FCS。
按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?
原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和出错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交给“设备驱动程序”做进一步处理。这时我们抓包的软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6 + 6 + 2 + 1500 = 1514。
以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是 6 + 6 + 2 + 46 + 4 = 64。除去4个字节的FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64 字节
IEEE 802委员会制定了,另外一个以太网标准802.3,即(rfc1042)。目前实际使用的仍然是以太网居多。一些交换机之间的网络协议会使用rfc1402.
RFC规定:
1.以太网主机必须能支持RFC894的封装格式(发送和接受)
2.应该能接受RFC849和RFC1042的格式
3.也许能发送RFC1042的分组,如果同时支持发送两种封装格式的分组,必须可以设置用哪一种,且默认为RFC894的格式
三 MTU
传输协议定义的,对数据帧长度的最大限制。如果网络层的数据报大于MTU的值,需要进行分片。
路径MTU,链路中最小的MTU
以太网 MTU=1500
802.3 MTU=1492
本文出自 “随笔” 博客,请务必保留此出处http://sunsj.blog.51cto.com/2007940/1951230
标签:tcp/ip
原文地址:http://sunsj.blog.51cto.com/2007940/1951230