5.1 传输层提供的服务
5.1.1 传输层的功能
传输层存在于通信子网以外的主机中
- 传输层提供应用进程之间的逻辑通信(端到端通信)
- 复用和分用。复用:发送方不同的应用进程都可以使用同一个传输层协议传送数据;分用:接收方的传输层在剥去报文的首部后可以把这些数据正确交付给目的应用进程
- 差错检测:对收到的报文进行差错检测(首部和数据部分)。网络层只检查IP数据报的首部,不检验数据部分是否出错
- 提供两种不同的传输协议:面向连接的TCP协议和无连接的UDP协议。网络层无法同时实现这两种协议
5.1.2 传输层的寻址和端口
1. 端口的作用
端口可以让应用层的各种应用进程将数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程
端口时传输层服务访问点TASP,作用类似网络层的IP地址和数据传输层的MAC地址,而端口标识的是主机中的应用进程
2. 端口号
- 应用进程通过端口号进行标识,端口号长度16bit,可以标识65536个不同端口号
- 端口号只具有本地意义,只标识本计算机应用层的各个进程,在因特网中不同计算机相同端口号没有联系
根据端口号范围可以将端口号分为两类:
- 服务端使用的端口号
- 熟知端口号:0~1023,这些端口号被分配给TCP/IP最重要的一些应用程序
- 登记端口号:1024~49151,供没有熟知端口号的应用程序使用
- 客户端使用的端口号:49152~65535。 仅在客户进程运行时才动态选择,又称临时端口/短暂端口号。通信结束后,刚用过的客户端口号就不复存在,供其他客户进程之后使用
- TCP规定HTTP服务器进程的端口号为80,web服务器采用http协议,端口号80
3. 套接字
网络中通过IP地址识别不同主机,通过端口号识别一台主机中不同应用进程
套接字Socket=(IP地址:端口号),唯一标识网络中的一台主机和其上的一个应用(进程)
5.1.3 无连接服务和面向连接服务
- 面向连接服务:通信双方实现通信前,必须建立连接。通信过程中整个连接的情况一直被实时监控和管理。通信结束后,需要释放该连接
- 无连接服务:两个实体之间的通信不需要建立好连接,需要通信时直接将信息发送到网络中,让该信息的传递在网上尽力传送
TCP/IP协议族在IP层之上使用两个传输协议:
- 面向连接的传输控制协议TCP(传输层向上提供全双工可靠逻辑信道