网站制作与设计,在线识别图片找原图,网站开发面试自我介绍,怎样在网上做宣传知识点搜集于网络#xff0c;在加上自己的总结#xff0c;还有很多不全#xff0c;希望大家多提意见#xff0c;共享学习#xff01; 一、TCP/IP是什么#xff1f; TCP/IP是一个协议族#xff0c;而不是单独的协议。包括arp、ip、icmp、tcp、udp、http、ftp等协议 二、T… 知识点搜集于网络在加上自己的总结还有很多不全希望大家多提意见共享学习 一、TCP/IP是什么 TCP/IP是一个协议族而不是单独的协议。包括arp、ip、icmp、tcp、udp、http、ftp等协议 二、TCP/IP分层 从上面两个图表中可以看出ARP和RARP协议处于的网络层次不同。由于IP协议使用了ARP协议所以经常把ARP协议划归到网络层但是ARP协议的用途是为了从网络层使用的IP地址解析出在数据链路层使用的硬件地址即MAC地址所以有些地方也把ARP协议划归到数据链路层但是一般情况下我们还是把ARP和RARP协议划分到网络层这个没有明确的界限。 网络接口层关键元素MAC网络层关键元素IP传输层关键元素端口号 三、TCP/IP数据包的封装和分用 1、封装过程协议栈从上到下如图 数据被送入协议栈中然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层收到数据都要增加一些首部信息(有时候还要增加一下尾部信息)最后到达以太网也就是数据链路层这时候把这这个比特流叫做帧。 2、数据分用过程从协议栈由下往上如图 目的主机收到以太网数据帧后首先去掉各层协议加上的报文首部同时每层协议盒都要去检查报文首部中的协议标识以确定接收数据的上层协议 四、TCP协议的三次握手和四次挥手 1、三次握手 2、四次挥手 3、为什么是三次握手四次挥手 握手3次原因tcp中一方接收到syn报文后需向对方回应一个ack。三次握手中第一个是syn报文第二个是ack、syn报文第三个ack报文。这样就都回应了ack需要3次。 挥手4次原因tcp中一方接收到fin报文后需向对方回应一个ack并且tcp可以实现半关闭。4次挥手中第一个fin报文第二个ack报文它可能还要继续传送数据第三个是fin报文它已经不需要继续传送数据了第四个ack报文。这样就都回应了ack需要4次 能否挥手3次能。收到第一个fin报文后它自己也不需要传送数据了回应fin、ack报文对方再回应ack总共三次挥手完毕。实际中抓报文有很多这样的情况。 如果出现异常断开情况那么会直接发送RST报文这种情况是两次握手 五、TCP和UDP区别 1、TCP协议是有连接的有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接会话结束之后通过四次挥手结束连接。而UDP是无连接的2、TCP协议保证数据按序发送按序到达提供超时重传来保证可靠性但是UDP不保证按序到达甚至不保证到达只是努力交付即便是按序发送的序列也不保证按序送到3、TCP协议所需资源多TCP首部需20个字节不算可选项UDP首部字段只需8个字节4、TCP有流量控制和拥塞控制UDP没有网络拥堵不会影响发送端的发送速率5、TCP是一对一的连接而UDP则可以支持一对一多对多一对多的通信6、TCP面向的是字节流的服务UDP面向的是报文的服务 六、TCP半连接状态(半开连接半关连接) 半开连接 TCP的半开连接是指TCP连接的一端异常崩溃或者在未通知对端的情况下关闭连接这种情况下不可以正常收发数据否则会产生RST(后面内容我们在介绍RST)。比如一个常见的情况是TCP连接的一端异常断电就会导致TCP的半开连接。如果没有数据传输对端就不会知道本端的异常而一直处于ESTABLISHED状态。TCP半开连接是指发送了TCP连接请求等待对方应答的状态此时连接并没有完全建立起来,双方还无法进行通信交互的状态此时就称为半连接。由于一个完整的TCP连接需要经过三次握手才能完成,这里把三次握手之前的连接都称之为半连接。 半关闭连接 TCP的半关连接是指TCP连接只有一方发送了FIN另一方没有发出FIN包仍然可以在一个方向上正常发送数据。这种场景并不常见一般来说Berkeley sockets API调用shutdown()接口时候就会进入半关闭状态(调用常规的close()一般是期待完整的双向关闭这个TCP连接)shutdown()接口相当指示程序本端已经没有数据待发送所以我发送一个FIN到对端但是我仍然想要从对端接收数据直到对端发送一个FIN指示关闭连接为止。 转载于:https://www.cnblogs.com/stupidbug/p/8325472.html