以太网帧结构:

计算机网络的种种

类型为0x0800时,表示网络层使用的是IP协议

IP数据报格式

计算机网络的种种

首部长度: 占4位,单位为4字节,最大为1111,所以首部长度最长为60字节;最常用的首部长度为20字节,这时候没有选项和填充,首部字段为0101;

总长度:单位为字节,最大长度为2^16-1=65535字节,因为数据链路层有MTU的限制,所以总长度一般不超过1500字节;超过的时候,就进行分片;

片偏移:片偏移以8个字节为偏移单位,即每个分片的长度必须是8字节的整数倍;

计算机网络的种种

数据包与虚电路:

虚电路:在源节点与目的节点之间建立一条逻辑链接,所有的报文都经过这条链路传输,传送时不需要添加目的地址,报文总是按顺序到达终点。链路上有节点出故障时,就不能正常工作了,思想是由网络来保证可靠通信。

 

 

TCP三次握手

SYN报文:SYN=1,seq=x,ACK=0;

SYN+ACK报文:SYN=1,seq=y,ACK=1,ack=x+1;

ACK报文:seq=x+1,ACK=1,ack=y+1;

SYN报文和SYN+ACK报文即使不携带数据也要消耗一个序号

ACK报文如果不携带数据就不消耗掉一个序号

 

TCP四次挥手

FIN+ACK报文:FIN=1,ACK=1,seq=u,ack=v

ACK报文:FIN=0,ACK=1,seq=v,ack=u+1

FIN+ACK报文:FIN=1,ACK=1,seq=w,ack=u+1

ACK报文:FIN=0,ACK=1,seq=u+1,ack=w+1

FIN报文即使不携带数据也要消耗一个***。

 

在TCP协议中,处于last_ack状态的连接,如果一直收不到对方的ack,会怎么办?

B发送FIN,进入LAST_ACK状态,A收到这个FIN包后发送ACK包,由于某种原因,这个ACK包丢失了,B没有收到ACK包,然后B等待ACK包超时,又向A发送了一个FIN包
a) 假如这个时候,A还是处于TIME_WAIT状态(也就是TIME_WAIT持续的时间在2MSL内)
A收到这个FIN包后向B发送了一个ACK包,B收到这个ACK包进入CLOSED状态
b) 假如这个时候,A已经从TIME_WAIT状态变成了CLOSED状态
A收到这个FIN包后,认为这是一个错误的连接,向B发送一个RST(RESET)包,当B收到这个RST包,进入CLOSED状态
c) 假如这个时候,A挂了(假如这台机器炸掉了)【第四种情况,不在参考链接里】
B没有收到A的回应,那么会继续发送FIN包,也就是触发了TCP的重传机制,如果A还是没有回应,B还会继续发送FIN包,直到重传超时(至于这个时间是多长需要仔细研究),B重置这个连接,进入CLOSED状态,
 

IP和域名的对应关系?

一个IP地址可以对应多个域名

一个域名对应多个IP地址的话,可以轮训让这个域名具体对应哪个IP地址,实现负载均衡?

为什么有的网站不允许直接使用IP地址进行访问?

试了一下,百度可以直接使用IP地址进行访问,其他的网站一般都不运行直接使用IP地址进行访问,例如搜狐,CSDN,熊猫TV等。

如果允许使用IP地址进行访问的话,可能会出现这样的情况,其他的网站将他们的域名绑定到我们的IP地址,这样访问他们的域名将跳转到我们的网页。

好处:增加流量

坏处:影响网页排名,可以会把我们的网页当成复制的,有作弊的嫌疑,影响搜索引擎排名。

电子邮件:

组成:用户代理(电子邮件客户端软件),邮件服务器,邮件协议(邮件发送协议和邮件读取协议)

计算机网络的种种

 SMTP,POP3,IMAP4都是基于TCP的

邮件发送协议:SMTP,客户端到发送方服务器,发送方服务器到接收方服务器

邮件读取协议:POP3,IMAP4,接收方服务器到接收方

基于万维网的电子邮件:

电子邮件从A到网易的邮件服务器是HTTP协议,两个邮件服务器之间是SMPT,邮件从新浪服务器到B是HTTP协议

计算机网络的种种

TCP与DUP区别:

TCP:

1.TCP是面向连接的,在消息发送前,客户端与服务器要建立链接

2.TCP只能是点对点的,每一条TCP连接只能有两个端点

3.TCP是可靠的,有用赛控制和流量控制等

4.TCP是面向字节流的

UDP:

1.无连接的

2.尽最大努力交付,和IP一样

3.UDP是面向报文的,对于应用层交下来的报文,UDP只添加首部就交付给IP层,不进行分割,合并等。

4.UDP支持一对一,一对多,多对多

5.UDP首部开销小,只有8个字节

路由协议

关于路由协议需要把握三点:和哪些路由器交换信息,交换什么信息,在什么时候交换信息

RIP使用UDP,OSPF使用IP,BGP使用TCP。

RIP

路由信息协议,基于距离向量,一条路径最多只能包含15个路由器,16为不可达。

1.只和相邻的路由器交换信息

2.交换的信息是自己的路由表

3.固定时间间隔交换信息,例如30秒

路由更新算法:

接收到相邻路由器发送过来的路由信息时,

如果自己没有这条路由信息,就把这条路由信息添加到自己的路由表中,并且把下一跳路由器设置为这个相邻的路由器,距离+1;

如有有这条路由消息,就看它的距离+1是否小于我的记录,是,则更新,否不更新

//如果通过该相邻路由器到某个网络的路由信息没了,则把对应的删除。

OSPF:

使用分布式的链路状态协议

通过洪泛向自治系统(区)中所有路由器发送消息

发送的消息是与本路由器相邻的所有路由器的链路状态

只有当链路状态发生变化时,才发送消息。

自治系统中每个路由器都存储了邻居表链路状态数据库LSDB路由表

 

BGP

目的是寻求一条能够到达目的网络且比较好的路由,并非要找到一条最佳路由,采用路径向量路由选择协议,与距离向量协议和 链路状态协议都有很大区别。

UDP首部

计算机网络的种种

首部很简单,只有8个字节,每个字段的长度都是2个字节,源端口,目的端口,长度(总长度),校验和

TCP首部

计算机网络的种种

HTTP请求行首部

请求方法  URL  版本  \r\n

计算机网络的种种

状态行首部

协议 状态码 [原因短语] \r\n

原因短语 是200的时候没有,是其他的时候应该有。

计算机网络的种种

计算机网络的种种

相关文章:

  • 2021-07-07
  • 2021-08-23
  • 2021-04-15
  • 2022-02-02
  • 2021-06-12
  • 2022-01-16
  • 2021-06-23
  • 2021-05-22
猜你喜欢
  • 2021-05-26
  • 2021-09-09
  • 2021-11-20
  • 2021-07-30
  • 2021-10-18
  • 2021-11-09
  • 2021-12-20
相关资源
相似解决方案