IP首部中有一个协议字段,用来标识网络层(IP)的上一层是采用的哪一种传输协议。

源IP, 目标IP, 协议号, 源端口号, 目标端口号来唯一标识通信

计算机网络

客户端向服务端发起请求,为什么要经过应用层(为用户的应用进程提供服务),运输层(负责向两个主机中进程之间的通信提供服务,主要使用TCP、UDP两种协议)、网络层(为分组交换网上的不同主机提供通信服务)、数据链路层(在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上,透明地传送帧中的数据)、物理层(透明地传送比特流)、一层一层地封装?

IP数据报的首部明确标志了这两个主机的IP地址。但真正通信的实体是在主机中的进程,严格来讲,两个主机通信就是两个主机中的应用进程互相通信。IP协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付给主机中的应用进程。
网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信,运输层还有一个重要的作用复用分用

复用—应用层所有的应用进程都可以通过运输层再传送到IP层。
分用—运输层从IP层收到数据后必须交付给指明的应用进程。

User Datagram Protocol [RFC 768]

UDP传送的数据单元称为用户数据报,UDP在传送数据之前不需要先建立连接。远地主机的运输层收到UDP报文后,不需要给出任何确认。
UDP的主要特点:

  1. UDP是无连接的。
  2. UDP使用尽最大努力交付。
  3. UDP是面向报文的。
  4. UDP没有拥塞控制。
  5. UDP支持一对一、一对多、多对一和多对多的交互通信。
  6. UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

UDP的首部格式由四个字段组成,每个字段的长度都是两个字节:

  1. 源端口
  2. 目的端口
  3. 长度
  4. 检验和

UDP数据部分加上首部,传递给网络层,构成网络层的IP数据报的数据部分。
UDP用户数据报首部检验和,在UDP用户数据报之前增加12字节的伪首部
UDP不保证连接的可靠性,存在丢包的情况,相较于TCP,简单,效率高。

Transmission Control Protocol [RFC 793]

TCP最主要的特点:

  1. 面向连接。
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
  3. TCP提供可靠交付的服务。也就是说,通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达。
  4. TCP提供全双工通信。
  5. 面向字节流。

TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

TCP接的端点叫socket:
socket = (IP:port)
每一条TCP连接唯一地被通信两端的两个socket所确定。
TCP连接 ::= {socket1, socket2}

TCP传送的数据单位称为TCP报文段(segment),在传送数据之前必须先建立连接(三次握手),数据传输结束后要释放连接(四次挥手)。
TCP是面向连接,提供可靠运输。
TCP是如何保证连接的可靠性的呢? TCP通过三次握手建立连接


  1. 转发器(Repeater) —> 工作在 物理层
  2. 网桥 (Bridge) —> 数据链路层
  3. 路由器 (Router) —> 网络层
  4. 网关 (Gateway) —> 网络层以上

IP 地址::= { <网络号>,<主机号> }

子网掩码

头一次面对一本难读的书的时候,从头到尾先读一遍,碰到不懂的地方不要停下来查询或思索。

针对不同的书,采取不同的阅读方法。