day11(运输层、网络层、TCP/UDP)
- 只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时只用到下三层:物理层,数据链路层,网络层。
- 真正通信的实体是主机中的 进程。主机通信就是两个主机中的应用进程互相通信。
运输层一个主要的功能就是:复用和分用。
网络层为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信。 - 运输的两种协议:面向连接的TCP协议,面向无连接的UDP协议。
TCP:传输控制协议,运送的数据单元叫:TCP报文段。
UDP:用户数据报协议,。。。。:UDP用户数据报。 - UDP在传送时,不需要先建立连接。
TCP是提供可靠的,面向连接的服务。 - 这种在协议栈之间的抽象的协议端口是软件端口,是应用层的各种协议与运输实体进行层间交互的一种地址。
IP地址是为了找到对方的计算机,端口地址是为了找到对方计算机中的应用进程。
端口号:一是服务器使用的端口号或者叫系统端口号,0-1023,。
二是,登记端口号,1024-49151.
客户端使用的端口号,49152-65535.每次使用完后清除,也叫短暂端口号。 - UDP一次交付一个完整的报文,所以应用程序必须选择合适的长度,太长的话IP层会进行分片处理。且UDP是尽最大努力交付,不保证可靠交付。
UDP没有拥塞控制,所以网络出现拥塞不会降低发送速率。
支持一对一,一对多,多对一,和多对多通信。UDP首部开销很小,只有8个字节,TCP是20字节。 - UDP的首部很简单,8个字节:源端口、目的端口、长度、检验和 各占两个字节。
UDP通信是无连接的,所以不需要使用套接字,TCP之间的通信必须要在两个套接字之间建立。 - TCP提供全双工通信,只能是点对点的。提供可靠的交付,连接传送的数据无差错、不丢失、不重复、并且按序到达。
TCP连接的端口叫套接字或者插口。
套接字socket=(IP地址:端口号),TCP连接::={socket1,socket2};