传输层:端到端(endpoint to endpoint)

一、再谈 地址(IP) + 端口(port)

1、在网络上(先不考虑私网):

  1. IP 的作用是唯一标识一台主机,主机拥有唯一的一个 IP 地址,主机也可以拥有多个 IP 地址。
  2. Port 的作用标识主机上的唯一一个进程,一个进程可以拥有多个 port,而一个 port 只能属于一个进程。
  3. IP + port :可以标识网络上的一台唯一的主机 + 该主机上的唯一一个进程
  4. 五元组:(先不管协议)远端 + 本地,标识网络上唯一一个端对端的通信通道(端对端),在TCP/IP协议中, 用 "源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信(可以通过netstat -n查看)
  5. 通过工具来演示:

netstat -nao; 查看进程,LISTING 不看

netstat -nao|findstr 3306;查看3306 端口,|表示管道,管道左边命令的标准输出 将作为 管道右边命令的标准输入

【网络原理】TCP/IP 协议—— 传输层(一)端口号与UDP协议

2、常见的端口划分策略

建议 1024 以下的端口留给知名的一些服务取用(well known),导致监听1024 以下的端口时,一般需要管理员权限。常见的端口

  • ssh服务器, 使用22端口
  • ftp服务器, 使用21端口
  • telnet服务器, 使用23端口
  • http服务器, 使用80端口
  • https服务器, 使用443
  • MySQL 服务器:使用 3306 端口
  • DNS 服务器:使用 53 端口

问题(1):一个进程是否可以bind多个端口号?可以,一台机器上端口最多65535 个,16 位端口

问题(2):一个端口号是否可以被多个进程bind? 不行,但是有特例

二、UDP 协议

1、特征/属性:

  1. 不可靠的:没有确认应答机制,没有重传机制,如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息。
  2. 面向报文的:不能够灵活的控制读写数据的次数和数量
  3. 无连接:知道对端的IP和端口号就直接进行传输, 不需要建立连接

2、UDP协议端格式:

【网络原理】TCP/IP 协议—— 传输层(一)端口号与UDP协议

校验和:用到 Hash 函数,假设源数据经过 Hash 后成为 0x1234,而接收到的数据经过 Hash 后成为 0x1111,因为对不上,说明数据在传输过程中错误了,那么直接丢弃这份数据。(使用 Hash 函数的原因:错误数据得到相同的 hash 的概率很低)

3、面向数据报:

应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并;

用UDP传输100个字节的数据:

如果发送端调用一次sendto, 发送100个字节, 那么接收端也必须调用对应的一次recvfrom, 接收100个字节; 而不能循环调用10次recvfrom, 每次接收10个字节;应用层 receive 是阻塞的。

4、UDP 的缓冲区

  1. UDP 传输层上没有发送缓冲区.。UDP 不保存数据,收到加工直接发送。UDP 的发送成功表示数据已经到达了网络,不代表对方收到了。
  2. UDP具有接收缓冲区。但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果缓冲区满了, 再到达的UDP数据就会被丢弃;
  3. Recieve 会阻塞,一直到收到数据为止,除非接收缓冲区中有数据。

UDP 的 socket 既能读,也能写,这个概念叫做全双工。

5、UDP 使用注意事项:

UDP协议首部中有一个16位的最大长度,也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部)。然而64K在当今的互联网环境下, 是一个非常小的数字。如果我们需要传输的数据超过64K, 就需要在应用层手动的分包多次发送,,并在接收端手动拼装。

6、基于 UDP 的应用层协议:

  • NFS: 网络文件系统
  • TFTP: 简单文件传输协议
  • DHCP: 动态主机配置协议
  • BOOTP: 启动协议(用于无盘设备启动)
  • DNS: 域名解析协议

DHCP:动态申请 IP 地址用的。静态分配 IP缺点:网络太大时管不过来。

DNS(Domain Name Service)域名协议

域名解析服务:把 www.baidu.com 变成 172.16.34.44

向 Local DNS 查询,有则返回,没有就去上一级,拿到之后层层往回返并且过程中记录新的

家里的路由器一般就是 DHCP/Local DNS/IP Gateway(网关)网关。

相关文章: