分层
- 应用程序是用户进程,应用层关心应用程序的细节
- 下三层一般在内核执行,下三层处理通讯细节
在图中,可以划分出端系统(两边的两台主机)和中间系统(中间的路由器)
- 应用层和运输层使用端到端协议。只有端系统需要这两层协议。
- 网络层提供的却是逐跳协议,两个端系统和每个中间系统都要使用它。
不同层的协议
这是重点学习目标,接下来本系列博文所有内容围绕这几个内容展开
封装(发送方)
以太网数据帧的物理特性是其长度必须在46~1500字节之间
每一层的首部都有nbit的位,描述了上一层将采取什么类型的协议
以太网的帧首部有16b i t的帧类型域(ip,arp,rarp) IP在首部中存入一个长度为8b i t的数值,称作协议(icmp,igmp,tcp,udp,esp,gre) TCP和UDP都用一个16 b i t的端口号来表示不同的应用程序(ftp,telnet,http)
分用(接收方)
流程与封装相反
链路层
以太网
以太网帧
很简单,
- 目的地址
- 源地址
- 帧类型,描述上一层用什么协议
- CRC,用于帧内后续字节差错的循环冗余码检验(检验和)
- 要求最少要有46字节,必须在不足的空间插入填充(pad)字节
- 最大1500字节,超过分片
抓包
1目的 2源 3 ip类型
网络层
IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输
IP提供不可靠、无连接的数据报传送服务
- 不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。
- 无连接(connection less)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。
ip首部
抓包
版本号是4,因此I P有时也称作IPv4
万一有扩充呢: 首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。普通IP数据报(没有任何选择项)字段的值是5(20字节)
服务类型(TOS)字段包括一个3bit的优先权子字段(现在已被忽略)
总长度字段是指整个IP数据报的长度,以字节为单位
分片: 标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1,在讨论分片时再来分析标志字段和片偏移字段
ICMP: TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机
识别哪个协议向IP传送数据: 协议字段,并在图1-8中示出了它如何被I P用来对数据报进行分 用。根据它可以识别是哪个协议向IP传送数据。
检验首部: 首部检验和字段是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。后面的协议ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。
源
目的
IP路由选择
- 跨网络
源ip,目的ip不变 源mac地址,目的mac换成当前地址
该例子中的所有主机和路由器都使用了默认路由。事实上,大多数主机和一些路由器可以用默认路由来处理任何目的,除非它在本地局域网上。
数据报中的目的IP地址始终不发生任何变化
每个链路层可能具有不同的数据帧首部,而且链路层的目的地址(如果有的话)始终指的是下一站的链路层地址。在例子中,两个以太网封装了含有下一站以太网地址的链路层首部。以太网地址一般通过ARP获得。
特殊ip
- 全0,在DHCP会出现
- 127开头,环回口地址
- 主机号全1,广播
|