赞
踩
透明地传输比特流
类型字段:用来标志上一层使用的什么协议,当类型字段为0X0800表示上层使用的是IP数据报
最后一个字段是4字节的帧检验序列FCS.
出现下列情况之一即视为无效的MAC帧
①帧的长度不是整数个字节
②收到的帧检验序列FCS有差错
③MAC帧数据字段的长度不在46~1500字节之间.考虑到MAC首部和尾部长度共有18个字节,可以得出有效的MAC帧长度为64~1518字节之间
注意
①对于检查出无效的MAC帧直接丢弃.以太网不负责重传丢弃的帧
②IP数据报最大不超过1500,否则要进行分片,由于IP首部一般为20个字节,所以IP的数据部分达到1480字节就要进行分片
IP数据报的格式
通信双方使用的IP协议版本必须一致.
抓包工具: version :4 表示IPv4 version :6表示IPv6
最常用的首部长度就是20个字节
抓包工具: Header length:20bytes
只有使用区分服务时,这个字段才起作用,在一般情况下不使用这个字段
抓包工具: Differentiated services Field:0x00
指首部和数据部分的长度和,单位为字节.总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节
抓包工具: Total length:1430
相同的标识字段值使分片后的各数据报片能正确地重组为原来的数据报
抓包工具: Identification:0x848f(33935) <-同一个数据报的多个分片中是一样的
占3位,目前只有两位有意义;
最低位记为MF(More Fragment).MF=1表示后面还有分片,MF=0表示这是若干数据报片中的最后一个
中间那一位记为DF(Don’t Fragment),意思是不能分片,只有当DF=0是才允许分片
抓包工具: Flags:0x04(Don’t fragment)
TTL(time to live)表明数据报在网络中的寿命.路由器在转发数据报之前就把TTL减1.若TTL值减小到0,就丢弃这个数据报不再转发.因此TTL的单位是跳数.TTL的意义是指数据报在因特网中至少可以经过多少个路由器
如果我们ping的目标机是Linux,则TTL大概为64;如果是windows,则TTL大概为128,如果是UNIX,则TTL大概为255,通过这种方式可以判断对方计算机是什么系统的,但是不一定对
协议字段指出此数据报携带的数据使用的是哪种协议
常用命令
查看会话:netstat -n
查看建立会话的进程:netstat -nb
查看服务器监听的端口:netstat -a
测试能否访问远程的端口:telnet ip地址 端口号
运输层有两种不同的通信协议,面向连接的TCP协议和无连接的UDP协议
UDP概述
一个数据包就能完成数据通信,不需要建立连接,不保证可靠交付也没有拥塞控制,而且UDP的首部开销小,只有8个字节,比TCP的20个字节要短,但在某些情况下UDP却是一种最有效的工作方式.比如QQ聊天消息使用的就是UDP
TCP概述
需要将传输的数据分段,需要通信双方建立连接,提供可靠交付,具有拥塞控制和流量控制
比如使用QQ传送较大的文件使用的是TCP
应用层协议=运输层协议+端口号
应用层协议 运输层协议 端口号
SMTP(简单邮件传送协议) TCP 25
TELNET(远程终端协议) TCP 23
HTTP(超文本传送协议) TCP 80
FTP(文件传送协议) TCP 21
HTTPS() TCP 443
POP3 TCP 110
UDP的首部格式
长度:UDP数据报的总长度,其最小值为8(仅有首部)
检验和:检测UDP数据报在传输过程中是否有错,有错就丢弃
TCP的首部格式
序号字段值是指本报文段发送的数据的第一个字节的序号
期望收到对方下一个报文段的第一个数据字节的序号
例如:B正确收到了A发送过来的一个报文段,其序号字段值为501,而数据长度为200字节,这表明B正确收到了A发送的到序号700为止的数据.因此,B期望收到A的下一个数据序号701,于是B在发送给A的确认报文段中把确认号置为701
ACK=1时确认号字段才有效.当ACK=0时,则无效.TCP规定:在建立连接后所有传送的报文段都必须把ACK置为1
当SYN=1而ACK=0时,表明这是一个连接请求报文段.对方若同意建立连接,则在响应的报文段使SYN=1和ACK=1
用来释放一个连接.
指的是发送本报文段的一方的接收窗口.窗口指告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量.窗口值经常在动态变化着.窗口值作为让发送方设置其发送窗口的依据
TCP如何实现可靠传输的
在网络上传输数据,有的数据比较大,需要分成很多小的数据包,如果网络不稳定,就有可能造成丢包现象,这时就需要用到TCP的可靠传输机制
可以使用停止等待协议来实现TCP的可靠传输.停止等待协议是指,发送方先发送一个分组给接收方,发完就暂停发送,接收方接收到了分组就向发送方发送确认.发送方就收到接收方发送的确认后,再发送另外一个分组.发送方只要超过一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,因而重传前面发送过的分组,这就是所说的超时重传.停止等待协议是比较简单的,但是信道利用率比较低.为了提高传输效率,可以采用流水线传输的方式.流水线传输就是发送方可以连续发送多个分组,不必没发完一个分组就停顿下来等待对方确认.其实滑动窗口协议就是基于流水线传输的方式
滑动窗口协议就是说,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置.接收方采用累积确认的方式.也就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示,到这个分组为止的所有分组都已经正确收到了
TCP是如何实现流量控制的
客户端访问服务器,如果发送方发送得快,接收方接收得慢,就有可能造成很多包的丢失.所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收
设A向B发送数据,在连接建立时B告诉A:我的接收窗口rwnd=400,因此,发送方的发送窗口不能超过接收方给出的接受窗口的数值
TCP是如何实现拥塞控制的
慢开始和拥塞避免算法结合使用
快重传和快恢复算法结合使用
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。