手记

【九月打卡】第16天 计算机网络知识学习

课程名称:剑指Java面试-Offer直通车 百度资深面试官授课

课程章节:

第2章 计算机网络面试核心

主讲老师:翔仔

课程内容:

   计算机的网络知识

课程收获:

1、TCP/IP

物理层:机械之间的传递,光缆,0/1 比特流,网卡工作在这一层

数据链路层:格式化数据,进行传输,将比特数据转换成帧,交换机工作在这一层,对帧解码

网络层:将网路地址翻译成物理地址,找到最佳路径a~b,路由器工作在网络层,通过数据包传输,本层关注的协议是IP协议

传输层:解决主机间的数据传输,控制传输的速率,将较长的数据包进行分割成段落传输(丢失的段落决定要不要重新发送),TCP协议和UDP协议

会话层:建立和管理应用程序之间的通讯,可以让应用程序之间收发包;

数据层:信息的语法以及他们的关联,进行翻译,加密,解密等,将数据进行格式化;

应用层:规定发送发和接收方使用固定长度的消息头,消息头是某种固定的组成,里面记录消息的长度等信息,http协议。

2、TCP的三次握手


Sequence Number(SEQ) :TCP传输中的每个字节都按顺序编号。例如一段报文的序号是107,携带的数据有100字节。那么下一个报文的序号字段值就是207

Acknowledge Number(ACK):确认号。期望收到对方的下一个报文的第一个字节的序号。例如B收到A的报文,序号301,数据长度200字节。因此B希望收到A的下一个序号是501.因此B发给A的确认报文段中ACK为501

offset数据偏移:头部有可选字段,长度不固定。指出TCP报文的数据的位置距离起始处有多远

TCP Flags(为1有效,为0无效)

第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。(服务器确认,A能发,B能收)

第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。(客户端确认,A能发,B能收;B能发,A能收)

第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。


0人推荐
随时随地看视频
慕课网APP