
ip地址一共有32位,由两部分组成,网络号和主机号,为了区分,设计了子网掩码

DNS是域名解析 域名具有层级结构,比如blog.yxjxxr.site 就是yxjxxr.site的子域名
域名解析的流程
先去找根域名服务器,在顺藤摸瓜,一步步找到到存放目标域名的服务器,从而获取IP地址
知道了IP地址之后,就可以委托操作系统的协议栈向目标web服务器发送消息了
大概流程如下:

实际负责收发消息的是协议栈,网卡驱动和网卡。
协议栈是根据套接字中记录的控制信息来工作的。


连接的目的是将客户端的请求发送给协议栈,同时客户端向服务端传递连接的请求

当知道服务端的IP地址和端口号之后,这些信息会传递给协议栈中的 TCP 模块。然后,TCP 模块会与服务器的 TCP 模块交换控制信息。TCP模块将信息传递给IP模块并委托其发送,信息发送到服务端的IP模块再传到服务端的TCP模块。然后服务器的 TCP 模块会返回响应,向上面一样传回到客户端的TCP模块,然后客户端也需要将 ACK 比特设置为 1 并发回服务器,告诉服务器刚才的响应包已经收到,至此,连接完成(3次握手)
数据收发操作是从应用程序调用 write 将要发送的数据交给协议栈开始的,协议栈收到数据后执行发送操作 (其中涉及很多很复杂的操作,这里先不写,看看视频教程再进行补充)



IP 头部中包含 IP 协议规定的、根据 IP 地址将包发往目的地所需的控制信息;MAC 头部包含通过以太网的局域网将包传输至最近的路由器所需的控制信息
以太网是一种为多台计算机能够彼此自由和廉价地相互通信而设计的通信技术

两个目标: 信号如何在网线和集线器上面传输? 信号在传输的过程中会衰减,还会受到噪声的干扰而失真,如何抑制这些影响?
双绞线通过交叉抵消相互产生的噪声和相邻网线产生的噪声


RJ-45是网线接口,PHY(MAU)模块进行接收,然后传入mac模块,将信号转化为数字信息。校验通过后将包放进内存(缓冲区),缓冲区通过包的接收方mac地址与mac地址表进行对比,在交换电路把包发往相应端口
首先通过端口将包接收进来。转发模块会根据接收到的包的 IP 头部中记录的接收方 IP 地址,在路由表中进行查询,以此判断转发目标。然后,转发模块将包转移到转发目标对应的端口,端口再按照硬件的规则将包发送出去


路由器在进行包的转发的时候只会将包发往对应的网络号。将包发往xxx区
在子网掩码的右边
还有网关和接口两列,它们表示网络包的转发目标。根据目标地址和子网
掩码匹配到某条记录后,路由器就会将网络包交给接口列中指定的网络接
口(即端口)B,并转发到网关列中指定的 IP 地址。
主机号部分比特全部为 0 可以表示一个子网,主机号部分比特不全部为 0 可以表示某一台计算机
有时候同一个IP地址的子网掩码和路由表中的不一样,这是路由聚合的结果
但在这个例子中,无论发往任何一个子网,都是通过路由器 A 来
进行转发,因此我们可以在路由表中将这 3 个子网合并成 10.10.0.0/16,这
样也可以正确地进行转发,但我们减少了路由表中的记录数量,这就是路
由聚合。
当接收方的IP地址不在路由表里面的时候,就会触发兜底机制:子网掩码 0.0.0.0 ,这时候数据包会通过网关转发到互联网接入路由器
这样一来,无论目标地址是表示一个子网还是表示某台设备,都可以
用相同的方法查找出转发目标,而且也避免了不知道转发到哪里的问题。



将公司内网分成两个部分,一部分是对互联网开放的服务器,另一
部分是公司内部设备。其中对互联网开放的部分分配公有地址,可以和互
联网直接进行通信,这一部分和之前介绍的内容是一样的。相对地,内网
部分则分配私有地址,内网中的设备不能和互联网直接收发网络包,而是
通过一种特别的机制进行连接,这个机制就叫地址转换。
首先将发送方的私有IP地址改写为地址转换设备的接入互联网的公网地址,将地址和端口号进行对应,写在对应表里,发往服务器之后,从服务器接收数据之后,根据对应表,将公网IP和端口号映射到原来的内网IP和端口号,实现数据传输。当收发结束之后,进入断开阶段,访问互联网的操作全部完成后,对应表中的记录就
会被删除。
在对包进行转发时,根据 MAC 头部、IP 头部、TCP 头部的内容,按照事先设置好的规则决定是转发这个包,还是丢弃这个包。我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的




本文作者:Deshill
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!