假如有路由器,且接收端不是自己的地址,那么根据路由控制表转发数据。
TCP 模块处理
收到 TCP 段后,首先查看校验和,判断数据是否被破坏。然后检查是否按照序号接收数据。最后检查端口号,确定具体的应用程序。
数据接收完毕后,发送一个 “ 确认回执” 给发送端。如果这个回执信息未能达到发送端,那么发送端会认为接收端没有接收到数据而一直反复发送。
数据被完整接收后,会把 TCP 段解封装发送给由端口号识别的应用程序。
应用程序处理
应用程序收到数据后,通过解析数据内容获知发送端请求的网页内容,然后按照 HTTP 协议进行后续数据交互。
网络构成
搭建一套网络涉及各种线缆和网络设备。下面介绍一些常见的硬件设备。硬件设备所说的层数是参照的 OSI 参考模型,而不是 TCP/IP 模型。
通信介质与数据链路
设备之间通过线缆进行连接。有线线缆有双绞线、光纤、串口线等。根据数据链路不同选择对应的线缆。传输介质还可以被分为电波、微波等不同类型的电磁波。
传输速率:单位为bps
,是指单位时间内传输的数据量有多少。又称作带宽,带宽越大网络传输能力就越强。
吞吐量:单位为bps
,主机之间实际的传输速率。吞吐量这个词不仅衡量带宽, 同时也衡量主机的 CPU 处理能力、 网络的拥堵程度、 报文中数据字段的占有份额等信息。
网卡
任一主机连接网络时,必须要使用网卡。可以是有线网卡,用来连接有线网络,也可以是无线网卡连接 WiFi 网络。每块网卡都有一个唯一的 MAC 地址,也叫做硬件地址或物理地址。
二层交换机
二层交换机位于 OSI 模型的第 2 层(数据链路层)。它能够识别数据链路层中的数据帧,并将帧转发给相连的另一个数据链路。
数据帧中有一个数据位叫做 FCS,用以校验数据是否正确送达目的地。二层交换机通过检查这个值,将损坏的数据丢弃。
二层交换机根据 MAC 地址自学机制判断是否需要转发数据帧。
路由器 / 三层交换机
路由器是在 OSI 模型的第 3 层(网络层)上连接两个网络、并对报文进行转发的设备。二层交换机是根据 MAC 地址进行处理,而路由器 / 三层交换机则是根据 IP 地址进行处理的。因此 TCP/IP 中网络层的地址就成为了 IP 地址。
路由器可以连接不同的数据链路。比如连接两个以太网,或者连接一个以太网与一个无线网。家庭里面常见的无线路由器也是路由器的一种。