1. 传输层概述
传输层是只有主机才有的层次.
传输层功能:
-
传输层提供进程和进程之间的逻辑通信。
网络层提供主机到主机之间的逻辑通信。
-
复用和分用
复用:不同的进程可以使用同一个传输层协议。
分用:传输层收到报文后,可以将报文的有效载荷交付给对应的进程。
-
传输层对收到的报文进行差错检测。网络层不需要进程差错检测,只需要检查首部信息是否正确即可。
2. TCP,UDP协议概述
传输层有两个核心协议:
-
TCP:面向连接的传输控制协议。
传送数据之前必须建立连接,数据传送结束后要释放连接。
不提供广播或多播服务。
由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销
eg:确认、流量控制、计时器及连接管理等。 -
UDP:无连接的用户数据报协议。
传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
TCP特点:可靠,面向连接,时延大,适用于大文件。
UDP特点:不可靠,无连接,时延小,适用于小文件。
3. 传输层的寻址与端口
主要针对的是传输层复用和分用问题。
- 复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
- 分用:传输层从网络层收到数据后交付指明的应用进程。
端口(逻辑端口):标识主机的应用进程位置。
端口号只在本地有意义,不同主机的相同端口号没有意义。
端口号有16bit,能表示65536个端口号。
端口号按照范围分成两类:
-
服务端使用端口号。
熟知端口号 1~1023:给TCP/IP一些重要的程序使用的端口号,让所有用户都知道。
登记端口号 1024~49151 -
客户端使用端口号 49152~65536:客户进程运行时动态选择。
比较重要的熟知端口号:
FTP | SMTP | DNS | TFTP | HTTP | SNMP | TELNET |
---|---|---|---|---|---|---|
21 | 25 | 53 | 69 | 80 | 161 | 23 |
在网络中采用发送方和接收方的套接字组合来识别端点,套按字唯一标识了网络中的一个主机和它上面的一个进程。
套接字socket=(主机IP地址+端口号)
Linux套接字网络服务器开发复习链接