网络分层

OSI协议网络分层为七层,从上到下分别是

应用层(application layer)
表示层(presentation layer)
会话层(session layer)
传输层(transport layer)
网络层(network layer)
数据链路层(data-link layer)
物理层(physacal layer)

TCP/IP协议网络分为4层

应用层
运输层     TCP
网际层     IP
网络接口层

TCP协议三次握手和四次挥手

三次握手(建立网络连接)

  1. 第一步,客户端向服务端发送连接请求(SYN = 1),和一个随机起始序列号(seq),例如SYN=1(这个请求是连接请求),seq=100(这个数字是随机的一个数字)。
  2. 第二步,服务端收到客户端请求之后,发现SYN = 1,发现这个是一个连接请求,那么将seq存起来,并生成一个随机序列号(seq)例如300,seq = 300,然后给客户端回复一段报文,发送ACK = 1(说明收到了客户端连接请求),SYN = 1(这个请求是连接请求),seq = 300, ack = 101(客户端seq + 1)。
  3. 第三步,收到服务端请求后,发现ACK = 1, ack = 101,说明客户端同意这次连接,于是把服务端序列号(300)存了起来,然后给客户端发送一段报文,包含ACK = 1,seq= 101(客户端前面请求序列号 + 1),因为上次请求已经用掉了随机序列号,ack = 301(说明收到了服务端的连接请求)。

简化:
1、证明客户端发送能力
2、证明服务端收发能力
3、证明客户端接收能力

四次挥手(断开网络连接)


假设客户端初始化序列号是100,服务端初始化序列号是300,TCP连接后,客户端发送报文为1000个字节的数据,服务端在客户端发送FIN之前共收到2000个字节的数据。服务端收到FIN请求之后还有50个字节数据需要发送到客户端。

  1. 客户端向服务端发送FIN = 1(释放连接请求),并带上seq = 1101(100 + 1 + 1000)初始化序列号+连接用掉1个,加上一共发送1000个字节数据。客户端发送FIN,只是不能发送数据,还可以接收数据
  2. 服务端收到客户端请求后,给客户端发送确认信息,ACK = 1,seq = 2300, ack = 1102(1101 + 1)
  3. 服务端发送完最后50个自己数据后,给客户端发送FIN = 1(释放连接请求),ACK = 1(确认报文),seq = 2350, ack = 1012。
  4. 客户端确认收到服务端断开连接请求,发送报文ACK = 1, seq = 1012, ack = 2351。并等待2MSL时间后关闭连接(因为存在丢包,会存回2次报文最大存活时间)。服务端收到后会立马断开连接。

网络基础 -- 网络分层与三次握手、四次挥手相关推荐

  1. java 中的网络编程(Socket、TCP三次握手四次挥手、TCP/UDP/URL)

    文章目录 前言 一.网络编程概述 二.网络通信要素概述 1.如何实现网络中的主机互相通信 2.网络通信协议 3.IP和端口号 4.InetAddress类 5.网络协议 6.TCP/IP协议簇 7.T ...

  2. 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】

    TCP.UDP.Socket 一天面试的经验: 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP ...

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

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

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

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

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

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

  6. ssh协议是osi_TCP/IP协议和三次握手四次挥手

    计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不 ...

  7. 在深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

  8. 再深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    转载地址: https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/network/2015_0708_65.html 如果对网络 ...

  9. TCP是什么?为什么要三次握手四次挥手? (本文近9千字,建议收藏)

    编者前言: 本文近9千文字,预计阅读时间15分钟,文章内容整理于网络,仅供分享,更多好文请关注公众号:一航代码 公众号阅读链接:TCP是什么?为什么要三次握手四次挥手? (本文近9千字,建议收藏) 一 ...

  10. 【网安】初学者,第一天day1 (什么是域名,常见的端口和协议,三次握手四次挥手)

    网安小白第一天 了解什么是域名,常见的端口和协议,三次握手四次挥手 第一次接触网安,从0到1. 一.域名 1.定义 域名是用于在识别和定位Internet上计算机的层次结构式的字符标识,它对应于计算机 ...

最新文章

  1. vim的高级用法配置以及在系统中如何获取帮助
  2. Could not initialize class sun.awt.X11GraphicsEnvironment
  3. Xamarin Android开发实战(上册)
  4. Debian中几个bash初始化脚本使用区别--【转载】
  5. 【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )
  6. TensorFlow版的“Hello World”,运行官网第一个例子
  7. Django路由系统
  8. android:layout_width=0.0dip,【教程】状态栏显示网速
  9. python list转换成树形结构_python递归查询菜单并转换成json实例
  10. 漫画:云市场下,运营商甲方爸爸也出来抢乙方生意了?
  11. c#-多线程中lock用法的经典实例
  12. eclipse 改java版本_修改eclipse工程jdk版本
  13. 【Unity】Unity3D RPG游戏制作实例(二)开发思路及概要设计
  14. 基本共射放大电路的工作原理
  15. IPv6 节点主动访问 IPv4 节点-地址池方式的NAT64配置
  16. MEC — 边缘网络
  17. SpringBoot+百度云API 实现人脸识别功能
  18. 【操作系统与安全】考点总结
  19. 12.27追求世俗意义上的成功与心灵快感的矛盾
  20. 不知不觉发财10大秘诀(转)

热门文章

  1. 医院录用计算机专业信息科试题,(完整word版)医院信息科考试试题及答案,推荐文档...
  2. 【DONET学习笔记】C#与VB.NET除法运算的区别
  3. 神经网络(Neural Networks)
  4. 3.1递归实现逆序输出整数
  5. 服务器主机型号,服务器的主机型号
  6. #644 (Div. 3)F. Spy-string(暴力枚举)
  7. 海思3559A平台4GB LPDDR配置方案
  8. 计算机运用基础 南开在线作业,《大学计算机基础》20秋南开在线作业百分
  9. 单片机实验(十五)74LS47数码管译码
  10. Ceph RBD:条带(stripe)详解