![](https://csdnimg.cn/release/download_crawler_static/86726966/bg6.jpg)
从 IP 传过来的 IP 包对于以太网来说就是数据。给这些数据附加上以太网首部并
进行发送处理,生成的以太网数据包将通过物理层传输给接收端。
⑤ 网络接口(以太网驱动)的处理
主机收到以太网包后,首先从以太网包首部找到 MAC 地址判断是否为发送给自己
的包,若不是则丢弃数据。
如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应
的模块,如 IP、ARP 等。这里的例子则是 IP 。
⑥ IP 模块的处理
IP 模块接收到 数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己
的 IP 地址匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如
TCP、UDP。这里的例子则是 TCP。
另外吗,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借
助路由控制表,在调查应该送往的主机或路由器之后再进行转发数据。
⑦ TCP 模块的处理
在 TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在
按照序号接收数据。***检查端口号,确定具体的应用程序。数据被完整地接收
以后,会传给由端口号识别的应用程序。
⑧ 应用程序的处理
接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。
3、传输层中的 TCP 和 UDP
TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。
TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,当应用程序采
用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据
流发送给接收端。TCP 为提供可靠性传输,实行“顺序控制”或“重发控制”机
制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功
能。
UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在
UDP 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因
此,应用有时会根据自己的需要进行重发处理。
TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实
现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高
要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用。
3.1、端口号
数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链
路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输
层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中