tcp四次挥手

计算机网络知识总结

梦想与她 提交于 2019-12-03 05:31:17
OSI与TCP/IP各层的结构与功能,都有哪些协议 三种模型 五层模型对应的协议 1. 应用层 应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS ,支持万维网应用的 HTTP协议 ,支持电子邮件的 SMTP协议 等等。我们把应用层交互的数据单元称为报文 2. 运输层 运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务 。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。 运输层重要的两种协议 传输控制协议 TCP (Transmisson Control Protocol)--提供 面向连接 的, 可靠的 数据传输服务。 用户数据协议 UDP (User Datagram Protocol)--提供 无连接 的,尽最大努力的数据传输服务( 不保证数据传输的可靠性 ) UDP

《TCP/IP - TCP/UDP》

醉酒当歌 提交于 2019-12-03 04:59:13
一:概述   - 由于 IP 的传输是无状态的 , IP 提供尽力服务 ,但并不保证数据可以到达主机。   - 所以, 数据的完整性 需要更上层的 传输层来保证。 TCP和UDP 均属于 传输层。 二:UDP    - 特点     - 不具有可靠性 的数据报协议。     - UDP 虽然可以确定发送消息的大小,却不能保证消息的到达。    - 应用场景     - 即时通讯     - 包总量较少通讯     - 广播通信 三:TCP    - 特点     - 面向连接 的, 可靠的 流协议。     - 流即为不间断的数据结构,虽然可以保证发送的顺序,但是还是犹如没有任何间隔的发送给服务端。    - 应用场景     - 对 数据完整性有要求 的通信。 四:TCP 是通过什么机制实现可靠传输的?    - 确认应答      - 问题       - 发送端在发送数据之后,并 不知道发送的数据是否成功到达了接收端。      - 解决方案       - TCP 通过肯定的 确认应答 ACK(Positive Acknowled-gement) 实现可靠的数据传输。       - 如果有确认应答,说明数据已经成功到达对端。反之,则丢失的可能性很大。    - 序列号      - 问题       - 在发送端发送数据时,可能因为 某些原因(网络问题/硬件问题) 导致

TCP三次握手四次挥手详细理解附面试题

一个人想着一个人 提交于 2019-12-03 04:13:28
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。 终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接 PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ack、seq小写的单词表示序号。 字段 含义 URG 紧急指针是否有效。为1,表示某一位需要被优先处理 ACK 确认号是否有效,一般置为1。 PSH

TCP(一)

匿名 (未验证) 提交于 2019-12-03 00:32:02
TCP的特点:三次握手、四次挥手、可靠连接、丢包重传。所有的关键词都围绕着 可靠传输 。 实现可靠传输的核心机制: seq+ack 。通过ack判断是否有丢包,是否需要重传。 三次握手 1)初始状态:client为CLOSED,server为LISTEN,此时client 发送 syn 到server ,client状态变为SYN_SENT; 2)server 收到 syn后回复syn+ack给client,client状态变为SYN_RCVD; 3)client 收到syn+ack后,回复ack向server表示收到了server的syn+ack(此时client连接状态已经是established),当Server收到ack后,状态变成established。 为什么要握手?   1)最重要的目的:告诉对方自己的seq,对方回复ack(收到的seq+包的大小),用于判断是否有丢包; 四次挥手 1)client发送fin包给server,client连接状态变为FIN-WAIT-1; 2)server收到fin包后回复ack给client,表示server知道client要断开了,server连接状态变为CLOSE-WAIT;client收到ack后连接状态变为FIN-WAIT-2; 3)server发送fin包给client,表示server也可以断开了

三次握手与四次挥手详解(以及常见)

匿名 (未验证) 提交于 2019-12-03 00:30:01
ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。 FIN (finis): FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。 1. TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态; 2. TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文, Client发出请求连接即 SYN=1 ACK=0 , seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。 TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。 3. TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。 4. TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq

【老生常谈的】互联网协议

匿名 (未验证) 提交于 2019-12-03 00:27:02
OSI参考模型 OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。 一.物理层(Physical Layer) 物理层定义了所有电子及物理设备的规范。其中特别定义了设备与物理媒介之间的关系,这包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器(在SAN中使用的主机适配器)以及其他的设备的设计定义。因为物理层传送的是原始的比特数据流,即设计的目的是为了保证当发送时的信号为二进制“1”时,对方接收到的也是二进制“1”而不是二进制“0”。因而就需要定义哪个设备有几个针脚,其中哪个针脚发送的多少电压代表二进制“1”或二进制“0”,还有例如一个bit需要持续几微秒,传输信号是否在双向上同时进行,最初的连接如何创建和最终如何终止等问题。 为了更好理解物理层与数据链路层之间的区别,可以把物理层认为是主要的

TCP三次握手及四次挥手详解及常见面试题

匿名 (未验证) 提交于 2019-12-03 00:19:01
1. 源端口号:表示发送端端口号,字段长为16位。 2. 目标端口号:表示接收端口号,字段长为16位。 3. 序列号:表示发送数据的位置,字段长为32位。每发送一次数据,就累加一次该数据字节数的大小。 注意:序列号不会从0或1开始,而是在建立连接时由计算机生成的一个随机数作为其初始值,通过SYN包发送给接收端主机。然后再将每转发过去的字节数累加到初始值上表示数据的位置。 4. 确认应答号:表示下一次应该收到的数据的序列号,字段长为32字节。发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。 (1)保证报文按序到达。 (2)保证可靠性。 (3)保证效率。 (4)精准的报告哪些报文已经收到,哪些需要重传。 首部长度:该字段长度为4位,单位为4字节(32位)。TCP首部长度不包括选项的话,是20个字节,20/4=5,5的二进制序列:0101,报头长度也叫数据偏移,所以该字段可以设置为5,选项字段最大的是40字节,所以,TCP首部长度为最大为20+40=60字节,该字段可以设置的最大长度为60/4=15。 保留:该字段主要是为了以后扩展时使用,其长度为4位。一般设置为0,即使收到的包在该字段不为0,此包也不会丢弃。 控制位:字段长为6,每一位从左到右分别为:URG、ACK、PSH、RST、SYN、FIN。当对应的值为1,表示有具体含义。 字段 含义 URG

计算机网络面试题

ぐ巨炮叔叔 提交于 2019-12-03 00:06:45
计算机网络 1、谈下你对五层网络协议体系结构的理解? 1. 应用层 应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。 2. 运输层 运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。 由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。 3. 网络层 在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP / IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报

第五章 网络编程和并发编程

匿名 (未验证) 提交于 2019-12-03 00:06:01
1、python的底层网络交互模块有哪些?   socket, urllib,urllib3 , requests, grab, pycurl 2、简述OSI七层协议   应用层:HTTP,FTP,NFS   表示层:Telnet,SNMP   会话层:SMTP,DNS   传输层:TCP,UDP   网络层:IP,ICMP,ARP,   数据链路层:Ethernet,PPP,PDN,SLIP,FDDI   物理层:IEEE 802.1A,IEEE 802.11 3、什么是C/S和B/S架构   C/S架构:是指客服端和服务端,交互性好,对服务器压力小,安全,但是更新服务端的是后客户端也得更新。   B/S架构:是指浏览器和服务器,优点是不需要更新客服端,缺点是交互性差,安全性低。 4、简述TCP三次握手四次挥手的过程。   建立连接:   第一次握手:客户端向服务器发出请求。   第二次握手:服务器收到请求,同意连接,想客服端发送确认报文。   第三次握手:客服端接收到报文,向上层应用传达已建立连接。   释放连接:   第一次挥手:数据传输结束后,客服端发送连接释放报文段,并结束数据传输。   第二次挥手:服务端接收到连接释放报文段后,向客户端发送确认报文。   第三次挥手:服务器没有要发送的数据后,其应用进程就通知服务器释放TCP连接。这个阶段服务器所发出的最后一个报文。  

面经计算机网络

匿名 (未验证) 提交于 2019-12-02 23:56:01
1.OSI七层模型 物理层 :利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 数据链路层 :负责建立和管理节点间的链路。 网络层 :通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。 传输层 :向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。 会话层 :向两个实体的表示层提供建立和使用连接的方法。 表示层 :处理用户信息的表示问题,如编码、数据格式转换和加密解密等。 应用层 :直接向用户提供服务,完成用户希望在网络上完成的各种工作。 2.TCP/IP五层模型 物理层、数据链路层、网络层、传输层、应用层 3.应用层协议有哪些? HTTP、FTP、SMTP 4.TCP/UDP,IP,HTTP、SOCKET分别在哪一层? TCP/UDP在传输层,IP在网络层,HTTP在应用层、SOCKET在传输层 5.TCP和UDP特点区别?各自的应用场景 TCP是传输控制协议;UDP是用户数据报协议 TCP是面向连接的,通信双方彼此交换数据前,必须先通过三次握手协议建立连接之后才能传输数据,数据传输慢;UDP面向非连接也就是发送数据前不需要建立链接,数据传输快。 TCP提供可靠的服务;UDP无法保证可靠。 TCP面向字节流;UDP面向报文。 应用场景 :TCP适用于对效率要求低,但是对准确率要求高的场合(客户端应用);UDP适用于对效率要求高