-
在套接字中,如果还没有建立起来的网络连接,通常不会绑定 IP 地址,所以创建好以后会绑定 IP 地址,而更改网络环境后,再次进行网络请求会重新建立连接?
-
数据开始连接时,发送一个带有 SYN 为 1 的网络包,SYN 表示 synchronize,此时告知对方随机生成的初始序号,让双方信息同步
-
目前在 TCP 中每传输一个报文都要求接收方进行确认,大量短而频繁的确认报文给网络带来了很多开销。因此采取了延迟 ACK 策略来减少 ACK 的数量,就是接收方收到一个报文以后,不会立即发送 ACK,而是等待 1~200ms,这期间若有回送数据报文就捎带确认,但收到两个连续数据报文或者等待超时则发送一个独立确认。有效减少了 ACK 的数量,改善了 TCP 的整体性能。
-
TCP 在对方返回包对应的 ACK 号之前,都会把发送的包存在缓存区,以备重新发送
-
应用程序会在收到 FIN 为 1 的包之前就来取数据,但是这时候会被挂起,协议栈会告知应用程序来自服务器的数据已经全部收到,如果接受缓冲区中还有剩余的已接收数据,则这些数据会被传递给应用程序。什么意思?写入指定内存地址不是应用程序请求的吗?不是一直都是先写入接收缓冲区然后应用程序请求到内存地址中的?
-
对方接收到包以后,先将内容放在内容缓冲区,然后计算出 ACK 号发回,并将数据块组装起来交给应用程序,如果这个过程还没结束,就收到了下一个包,那么内容也会放在内容缓冲区,累积多了就会溢出,则无法再收到后面的数据,因此要在刚刚建立起连接的时候,由接收方告知发送方自己最多可接收多少数据(窗口大小)。发送方通过计算判断是否要继续发送数据,如果缓冲区已满则停止,当接收方将数据取出给应用程序使得缓冲区大小变化时,再通知发送方
-
IP 协议负责添加 MAC 头部,这样子网卡只需要收发包就可以了,可以兼容各种类型的包;
-
以太网是凭借发送方 MAC 头部识别发送方,接收方 MAC 头部识别接收方(使用 ARP 协议查询,有缓存),使用以太类型识别包的内容;无线局域网中没有以太类型,但是有另一个同样功能的参数,因此可以拿来替代以太网
MAC = Media Access Control -
如何读取电信号呢?当有连续的几个 0 或连续的几个 1,就无法判断分界线,即几个 0 几个 1,这个时候使用固定的时间信号去分隔,(ticktock 1 = 1 个信号,像是一把尺子),但是如果把时钟信号和数据信号分开的话,当网线较长,两条线路的长度可能发生差异,产生时间差,因此在最开始的时候就把时钟信号和数据信号叠加(都是 0 和 1 的叠加),因为时钟信号是固定频率固定周期的 0 和 1 变动,所以可以通过一段时间的观察来判断,观察的内容就是 MAC 加入的报头,用来判断周期,此时可以读出叠加信号,然后再用时钟信号和叠加信号计算出数据信号(00 = 0,11 =0,01/10 = 1)报头是 56 个比特的 010101……,按固定间隔变化,用来测算每个比特之间的时间间隔,从而知道每个比特信号的中间位置
-
FCS:对整个包的数据内容进行计算,比较接收方和发送方的 FCS 来判断是否受到噪声干扰导致数据变化
网友评论