传输层学习|青训营笔记(五)

116 阅读3分钟

1.传输层功能

  • 传输层向上面的应用层提供通信服务,属于面向通信部分的最高层,用户功能中的最底层。
  • 传输层位于网络层之上,为不同主机的进程间提供逻辑通信,网络层则提供的是主机间的逻辑通信。
  • 主机进行端到端通信时,只有主机的协议栈才有传输层和应用层,负责分组转发的路由器只用到物理层、数据链路层和网络层。

image.png 

2.传输层寻址与端口

SAP服务访问点:数据链路(MAC地址)、网络层(IP地址)、传输层(端口)

端口号:服务端端口号分熟知(0 ~ 1023)和登记端口号(1024 ~ 49151),客户端端口号为临时端口号(49152 ~ 65535),仅在进程运行时动态选择.

套接字:主机IP+端口号,是一个通信端点,唯一标识网络中的一台主机上的某个应用(进程)。

 

3.传输层协议

UDP协议:首部8B(源端口、目的端口、长度、校验和)+数据。

校验方法:添加伪首部12B(源IP、目的IP、0、17、长度),使用二进制反码求和并取反计算校验和写入UDP首部,接收方使用二进制反码求和得到全1则表明无差错,否则丢弃UDP数据报。

校验特点:添加伪首部后,可以检查IP数据包的源目的IP、源目的端口号、UDP数据报的数据部分。UDP差错检验方法虽然检错能力不强,但是简单、处理速度快。

image.png

  1. 传输控制协议 TCP

概念: TCP(Transmission Control Protocol)是 面向连接 的,提供可靠交付,有 流量控制,拥塞控制,提供 全双工通信,面向 字节流,每一条 TCP 连接只能是 点对点 的(一对一)的传输层通信协议。TCP将用户数据打包成报文段,它发送后会启动一个定时器。TCP 既可以使用 IPv4 也可以使用 IPv6。

TCP的特点

  • 面向连接的:通信前需要建立连接(三次握手),通信结束也需要释放连接(四次挥手)
  • 提供可靠交付:保证数据无重复、无丢失、无错误、与发送端顺序一致。当使用 TCP 向另一端发送数据时,它要求对端返回一个确认,如果没有收到确认,TCP 会自动重传数据并等待更长时间,数次重传失败后,TCP 才放弃
  • 面向字节流:把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块
  • 提供流量控制: TCP 会告诉对端它能接收多少字节的数据,称作“通知窗口”,该窗口任何时刻都指出接收缓冲区中的可用空间,从而确保发送端发送的数据不会溢出接收缓冲区
  • 提供拥塞控制
  • 点对点通信(单播):TCP 只能提供点到点的通信,而 UDP 可以任意方式的通信
  • 提供全双工通信:全双工通信指的是 TCP 的两端既可以作为发送端,也可以作为接收端,且两个方向可以同时进行发送和接收,就好比双行道(UDP 其实也可以是全双工的)