TCP的握手与挥手
轻轻的TCP走了,正如TCP轻轻的来,TCP挥一挥手,传递了不知多少信息
看到哪,记到哪,想起哪,就看哪,这就是我的博客园,很随性
UDP
在数据传送前不需要建立连接,接受方收到UDP报文后也不需要给出回应;不可靠的,但同时省去了很多开销,获得了速度的>>提升
TCP
在数据传送之前必须建立连接,完成数据传送之后断开连接
SOCKET
每一条TCP连接都有两个端点,称之为socket(套接字)=IP地址+端口号
码农翻身中又将其比喻为一个插座,负责将两端连接起来,提供其通信的功能:客户端IP, 客户端Port, 服务器端IP, 服务器端Port
例如IP地址192.168.10.10端口号8090,得到套接字为192.168.10.10:8090
三次握手
服务器端是被动的,服务器启动之后一直处于对客户端的监听状态
①客户端发出请求报文------->服务器端接收到请求报文
②服务端发出确认报文(服务端接收到来自客户端的请求后)-------->客户端接收到来自服务器的确认报文
③客户端发出确认报文-------->服务器端收到确认报文
第一次握手:服务器 确认了客户端的发送能力和服务器的接收能力没有问题
第二次握手:客户端 确认了服务器端的发送能力和客户端的接收能力没问题
第三次握手:服务器 确认了服务端的发送能力没问题
四次挥手
①客户端发出连接释放报文并停止数据的发送,进入终止等待状态
②服务器收到来自客户端的连接释放报文,发出确认报文(客户端已不发送数据,服务器还可以发送数据给客户端)
客户端收到服务器的确认报文,仍处于等待状态(等待服务器端的连接释放报文,还会接收来自服务器的数据)
③服务器发送连接释放报文,进入等待确认状态
④客户端收到服务器的连接释放报文发出确认报文,进入时间等待状态(还未进入连接关闭状态,需等待)
服务器端接收到客户端的连接释放确认报文,进入连接关闭状态,此次TCP连接结束
TCP的握手与挥手的更多相关文章
- 关于TCP的握手与挥手-----简单解释
所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立.在socket编程中,这一过程由客户端执行conn ...
- TCP的握手和挥手
三次握手 三次握手具体过程是什么? 客户端发送一个数据包 将SYN置成1,表示希望建立连接 这个包中的序列号是X 服务器收到客户端发来的数据包 通过SYN得知这是一个建立连接的请求 于是发送一个响应包 ...
- TCP 握手和挥手图解(有限状态机)
1.引言 TCP 这段看过好几遍,老是记不住,没办法找工作涉及到网络编程这块,各种问 TCP .今天好好整理一下握手和挥手过程.献给跟我一样忙碌,找工作的童鞋,欢迎大神批评指正. 2.TCP 的连接建 ...
- TCP/IP握手协议
转自:http://www.js123.net/t/n/n/2013/4/28/n_272.shtml 这篇介绍的也很棒:http://www.cnblogs.com/rootq/articles/1 ...
- 两将军问题、拜占庭将军问题、TCP三路握手过程的联系
2015年初时产生了一个疑问:基于不可靠的通信链路,为什么在两将军问题中永远无法达到共识,而在TCP三路握手中可以? 今天抽出了一些时间进行研究发现,实际上TCP三路握手也不是完全可靠的,只是一个近似 ...
- TCP模型,控制标志,握手,挥手,长连接*
1. TCP协议 Transmission Control Protocol,传输控制协议 面向连接的协议 需要三次握手建立连接 需要四次挥手断开连接 TCP报头最小长度:20字节 2.模型图 3.T ...
- TCP/IP 3握手4挥手
转:摘自<图解TCP/IP>P204 三次握手与四次挥手的状态转移图如下: 如图,由于第二次握手接收端发送SYN+ACK信号所以握手只用了三次,挥手由于接收端ACK和FIN分两次发的,所以 ...
- UNP——第二章,TCP握手与挥手分析
1.握手 说明: 下面涉及 FIN,SYN,ACK之类数据时,都是由TCP服务收发, 涉及 accept, listen 之类api,都是 应用进程 完成. 都统一使用 客户端,服务端描述,请自行分辨 ...
- 抓包分析 TCP 握手和挥手
前言 首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务.在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂 ...
随机推荐
- WPF界面框架的设计
http://www.cnblogs.com/baihmpgy/p/osgi_muinavtree_fx.html
- requestAnimationFrame 实现JS动画
requestAnimationFrame会随着浏览器绘制窗口的频率来绘制动画以达到最好的用户体验 // let raf = (function(){ // return window.request ...
- Windows 8.1 浏览器中 SkyDrive 的改名与隐藏
在 Windows 8.1 中已经整合了 SkyDrive ,在中文版中 SkyDrive 的名字总是感觉不协调,可是在属性里面可以调整位置却不能修改名称,怎么办呢? 打开注册表,找到 HKEY_CL ...
- 如何阅读不同格式的Ubuntu/Linux帮助文档
Ubuntu和Linux的帮助文档有各种各样的格式,下面简单说下如何阅读这些帮助文档. 1)通过man命令阅读软件或命令的manual page.例如阅读man命令的manual页面可使用如下命令: ...
- iOS 导航栏rgb值与设置的有差异
转:http://b2cloud.com.au/how-to-guides/bar-color-calculator-for-ios7-and-ios8/ 计算:http://htmlpreview. ...
- Java实现 Hessian接口测试
Hessian接口测试简单单例 Hessian是基于Binary –RPC(二进制远程过程调用协议)进行通讯. Hessian就是把Java对象转变成字节序列,然后通过Http传输到目标服务器上(主机 ...
- Centos6.5下DHCP服务器的安装和配置
1.首先需要安装DHCP的软件包,使用yum进行安装 # yum install -y dhcp.x86_64 dhcp-devel.x86_64 2.将/usr/share/doc/dhcp-4. ...
- IO流入门-第七章-BufferedReader
BufferedReader基本用法和方法示例 /* 字节 BufferedInputStream BufferedOutputStream 字符 BufferedReader:带有缓冲区的字符输入流 ...
- <2014 05 21> 互联网时代的C语言——Go(2)
**************************************************************************************************** ...
- jmeter操作 — 文件上传、下载
一.上传/下载的过程. 上传的过程就是你把你本地的文件,扔到服务器上的这么一个过程. 下载呢,就是把服务器上的文件拿过来,然后存到你本地的这么一个过程. 总结 ...