更多内容: http://blog.yuhai.win

参考地址:
1、http://mp.weixin.qq.com/s?__biz=MzAwNjMxMTA5Mw==&mid=2651340249&idx=1&sn=ad3bde6844f04049c5408334d09da871&scene=0#wechat_redirect
2、http://www.cricode.com/3568.html

1、TCP 的通信过程如下图:

TCP 的传输过程主要包括

a、 建立连接

b、 传输数据

c、 断开连接


2、 SYN(synchronous)是TCP/IP建立连接时使用的握手信息。在客户机与服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个信息,最后客户机再以ACK消息响应。


3、ACK(Acknowledgement),即确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接收无误。


4、三次握手建立连接

a、第一次握手:客户端发送SYN包(seq=x)到服务器,并进入SYN_SEND 状态,等待服务器确认

b、第二次握手: 服务器接收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态

c、第三次握手:客户端接收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器端进入ESTABLISHED状态,完成三次握手。


5、四次挥手断开连接

a、主动关闭发送一个FIN,用来关闭主动发到被动方的数据传送,也就是主动关闭方告诉被动关闭方,我已经不会再给你发数据了,但此时主动关闭方还可以接收数据。

b、第二次挥手 被动关闭方收到FIN包后,发送一个ACk给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)

c、第三次挥手: 被主动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传输,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

d、第四次挥手 主动关闭收到FIN后,发送一个ACk给被动关闭方,确认序号为收到序号+1,至此完成四次挥手

图解 TCP IP 协议:三次握手、四次挥手相关推荐

  1. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义:       这里 ...

  2. python网络通信效率_Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般 ...

  3. TCP/IP协议 - 三次握手四次挥手(入门易懂版)

    握手通俗理解为两个人见面Say Hai,客户端和服务端建立连接 挥手就可以理解为两个人结束会面,要Say Goodbai,客户端和服务端断开连接 要了解什么是三握四挥,必须要了解一个重要的知识点:什么 ...

  4. 【干货】TCP/IP协议三次握手四次挥手

    TCP是一种面向连接的.可靠的.基于字节流的传输层通信协议,在发送数据前,通信双方必须在彼此间建立一条连接.所谓的"连接",其实是客户端和服务端保存的一份关于对方的信息,如ip地址 ...

  5. 【网络工程】浅显易懂TCP/IP协议 三次握手 四次挥手

    目录 什么是三次握手? 如何进行三次握手 什么是四次挥手? 如何进行四次挥手 什么是三次握手? 为什么要三次握手?是为了保证建立一个安全可靠的链接 如何进行三次握手 第一次握手是由客户端发起,向服务端 ...

  6. Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)

    1.OSI 7层网络模型 1.网络七层协议 (1)OSI定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层.应用层),即ISO开放互连系统参考模型. (2)各层功能定义 这里 ...

  7. go tcp客户端自动重连_阿里面试: HTTP、HTTPS、TCP/IP、三次握手四次挥手过程?(附全网最具深度讲解)

    前言 这段时间面试官都挺忙的,频频出现在博客文章标题,虽然我不是特别想蹭热度,但是实在想不到好的标题了-.-,蹭蹭就蹭蹭 :) 事实上我在阿里面试的时候确实被问到了这个问题,HTTP.HTTPS.TC ...

  8. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  9. 白话解说TCP/IP协议三次握手和四次挥手

    白话解说TCP/IP协议三次握手和四次挥手 1.背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 1.1.问题 有时候聊天的过程中,我的 ...

  10. TCP为什么需要三次握手四次挥手

    TCP为什么需要三次握手四次挥手 三次握手 TCP是通过程序实现的,可靠的,面向连接的协议.而程序是严谨的,每一次建立连接都会进行"三次握手"这样的步骤. 建立连接的目的是为了可靠 ...

最新文章

  1. 在LINUX中部署NIS服务器
  2. 通过jquery获取td下的input标签的值,并且改变onclick的参数值
  3. Spring入门(一)之简介
  4. React开发(177):opentab没有menu会报错
  5. 安卓开发语言php,go语言支持安卓开发吗
  6. python中acosh_acosh()函数以及C ++中的示例
  7. android重复拉起app首页_Android进程管理:Framework层概念
  8. Python验证码的生成
  9. 解决办法:为什么我的DLL中加载后找不到指定的函数
  10. mysql客户端介绍
  11. matlab中的语言,matlab语言学习MATLAB语言基础.pdf
  12. 考计算机初级难不难,初级程序员好考吗_考试难不难_上学吧
  13. 【可靠性测试】之容错性测试---测试检查点罗列
  14. 2.jQuery常见API
  15. golang:模拟http post请求
  16. Windows系统文件详解
  17. 这个七夕,送你一份程序员教科书级别的告白指南
  18. PCFG句法分析之CYK算法
  19. 百度云加速zblog和WordPress规则自定义
  20. 工具 网络游戏封包基础

热门文章

  1. AngularJS API之toJson 对象转为JSON
  2. 百度Hi Csrf蠕虫攻击
  3. PIC16F877A开发板 数码管计数器实验
  4. DanmuManager 一个简单的弹幕工具
  5. bat写的自动部署脚本
  6. 如何定时备份远程mysql数据库
  7. ORA-01075: you are currently logged on
  8. 哈佛学生是如何度过大学4年的(没有学习动力时候就看一遍)
  9. 5.SOA架构:服务和微服务分析及设计--- REST服务建模过程
  10. 7.微服务:从设计到部署 --- 重构单体应用为微服务