Linux相关知识的第八回合
网络相关知识过招
简述osi七层模型和TCP/IP五层模型
OSI七层模型
1984年,ISO组织发布了著名的
OSI(Open System Interconnection)
标准,它定义了网络互联的七层框架:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
第7层 应用层(Application Layer)
为应用程序或用户请求提供各种请求服务;常用协议:http、https、FTP、TELNET、SSH、SMTP、POP3、MySQL
第6层 表示层(Presentation Layer)
数据编码、格式转换、数据加密;
第5层 会话层(Session Layer)
负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接
第4层 传输层(Transport Layer)
将传输表头(TH)加至数据以形成数据包;常用协议:TCP、UDP
第3层 网络层(Network Layer)
IP选址及路由选择;常用协议:IP、ICMP、RIP、IGMP
;
第2层 数据链路层(Date Link Layer)
提供介质访问和链路管理;常用协议:ARP、RARP
第1层 物理层(Physical Layer)
管理通信设备和网络媒体之间的互联互通;包括针脚、电压、线缆规范、集线器、中继器、网卡、网线、双绞线、同轴电缆等下面用一副图说明OSI七层模型
TCP/IP五层模型
TCP/IP
是一组协议的代名词,它包括许多协议,组成了TCP/IP
协议簇。它是把OSI
七层模型简化为五层模型;
第5层 应用层(Application Layer)
第4层 传输层(Transport Layer)
第3层 网络层(Network Layer)
第2层 数据链路层(Date Link Layer)
第1层 物理层(Physical Layer)
总结描述TCP三次握手四次挥手
三次握手
第一次握手
客户端发送syn
包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认
第二次握手
服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
握手过程中传送的包里不包含数据
,三次握手完毕后,客户端与服务器才正式开始传输数据
四次挥手
第一次挥手
主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接受数据
第二次挥手
被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)
第三次挥手
被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了
第四次挥手
主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手
TCP三次握手和四次挥手的全过程如下图:
参考文献
跟着动画学习 TCP 三次握手和四次挥手
描述TCP和UDP区别
TCP
面向连接(如打电话要先拨号建立连接);UDP
是无连接的,即发送数据之前不需要建立连接
TCP
提供可靠的服务;也就是说,通过TCP
连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP
尽最大努力交付,即不保 证可靠交付
TCP
面向字节流,实际上是TCP
把数据看成一连串无结构的字节流;UDP
是面向报文的
UDP
没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP
电话,实时视频会议等)
每一条TCP
连接只能是点到点的;UDP
支持一对一,一对多,多对一和多对多的交互通信
TCP
首部开销20字节;UDP
的首部开销小,只有8个字节
TCP
的逻辑通信信道是全双工的可靠信道;UDP
则是不可靠信道