课程名称:剑指Java面试-Offer直通车 百度资深面试官授课
课程章节:第一章
主讲老师:翔仔
课程内容:
物理层(链路层):机械电子等硬件
数据链路层(链路层):物理寻址,定义如何格式化数据进行传输,
网络层:将网络地址转化为物理地址,并决定如何将数据从发送方路由到接收方,比如路由器,
传输层:解决主机间的数据传输,主机可以是不同网络的:关注TCP和UDP协议
会话层:自动收发包,自动寻址,比如建立或解除与别的节点的联系
表示层:解决不同系统之间的语法问,如加解密,数据格式化
应用层:规定发送方和接收方使用对应的包大小,消息头中必须定义,比如文件传输,电子邮件
TCP协议的三次握手
TCP Flags
URG:紧急指针标志,如果为0无事,1则为有效
ACK:确认序号标志,1有效
PSH:push标志,为1代表接收到数据,应把数据尽快提交给应用程序
RST:重置连接标志
SYN:同步序号,用于建立连接过程
FIN:finish标志,用于释放连接
三次握手流程
TCP/IP协议中, TCP协议提供了可靠的连接服务,靠三次握手建议一个连接
第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时,服务器进入SYN_RECV状态
第三次握手:手机端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器都进入了ESTABLISHED状态,完成三次握手
为什么需要三次握手才能建立起连接
通信双方要通知对象自己的x和y值,作为以后数据通信的序号,保证传输的时候,不会乱序,TCP也会用这个序号拼接数据。
为了初始化Sequence Number的初始值
首次握手的隐患——SYN超时
原因:Server收到Client的SYN之后,回复SYN+ACK之后没有收到响应,也就是ACK响应
课程收获:
最近准备面试,也来看看剑指吧,java的生产调优先放放,这阵子要不先以面试为主吧,再定再定,今天先开个头!
加油,同志们。