网络基础 -- 网络分层与三次握手、四次挥手
网络分层
OSI协议网络分层为七层,从上到下分别是
应用层(application layer)
表示层(presentation layer)
会话层(session layer)
传输层(transport layer)
网络层(network layer)
数据链路层(data-link layer)
物理层(physacal layer)
TCP/IP协议网络分为4层
应用层
运输层 TCP
网际层 IP
网络接口层
TCP协议三次握手和四次挥手
三次握手(建立网络连接)
- 第一步,客户端向服务端发送连接请求(SYN = 1),和一个随机起始序列号(seq),例如SYN=1(这个请求是连接请求),seq=100(这个数字是随机的一个数字)。
- 第二步,服务端收到客户端请求之后,发现SYN = 1,发现这个是一个连接请求,那么将seq存起来,并生成一个随机序列号(seq)例如300,seq = 300,然后给客户端回复一段报文,发送ACK = 1(说明收到了客户端连接请求),SYN = 1(这个请求是连接请求),seq = 300, ack = 101(客户端seq + 1)。
- 第三步,收到服务端请求后,发现ACK = 1, ack = 101,说明客户端同意这次连接,于是把服务端序列号(300)存了起来,然后给客户端发送一段报文,包含ACK = 1,seq= 101(客户端前面请求序列号 + 1),因为上次请求已经用掉了随机序列号,ack = 301(说明收到了服务端的连接请求)。
简化:
1、证明客户端发送能力
2、证明服务端收发能力
3、证明客户端接收能力
四次挥手(断开网络连接)
假设客户端初始化序列号是100,服务端初始化序列号是300,TCP连接后,客户端发送报文为1000个字节的数据,服务端在客户端发送FIN之前共收到2000个字节的数据。服务端收到FIN请求之后还有50个字节数据需要发送到客户端。
- 客户端向服务端发送FIN = 1(释放连接请求),并带上seq = 1101(100 + 1 + 1000)初始化序列号+连接用掉1个,加上一共发送1000个字节数据。客户端发送FIN,只是不能发送数据,还可以接收数据
- 服务端收到客户端请求后,给客户端发送确认信息,ACK = 1,seq = 2300, ack = 1102(1101 + 1)
- 服务端发送完最后50个自己数据后,给客户端发送FIN = 1(释放连接请求),ACK = 1(确认报文),seq = 2350, ack = 1012。
- 客户端确认收到服务端断开连接请求,发送报文ACK = 1, seq = 1012, ack = 2351。并等待2MSL时间后关闭连接(因为存在丢包,会存回2次报文最大存活时间)。服务端收到后会立马断开连接。
网络基础 -- 网络分层与三次握手、四次挥手相关推荐
- java 中的网络编程(Socket、TCP三次握手四次挥手、TCP/UDP/URL)
文章目录 前言 一.网络编程概述 二.网络通信要素概述 1.如何实现网络中的主机互相通信 2.网络通信协议 3.IP和端口号 4.InetAddress类 5.网络协议 6.TCP/IP协议簇 7.T ...
- 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】
TCP.UDP.Socket 一天面试的经验: 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP ...
- Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)
1.OSI 7层网络模型 1.网络七层协议 (1)OSI定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层.应用层),即ISO开放互连系统参考模型. (2)各层功能定义 这里 ...
- Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里 ...
- python网络通信效率_Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般 ...
- ssh协议是osi_TCP/IP协议和三次握手四次挥手
计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不 ...
- 在深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP
如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...
- 再深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP
转载地址: https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/network/2015_0708_65.html 如果对网络 ...
- TCP是什么?为什么要三次握手四次挥手? (本文近9千字,建议收藏)
编者前言: 本文近9千文字,预计阅读时间15分钟,文章内容整理于网络,仅供分享,更多好文请关注公众号:一航代码 公众号阅读链接:TCP是什么?为什么要三次握手四次挥手? (本文近9千字,建议收藏) 一 ...
- 【网安】初学者,第一天day1 (什么是域名,常见的端口和协议,三次握手四次挥手)
网安小白第一天 了解什么是域名,常见的端口和协议,三次握手四次挥手 第一次接触网安,从0到1. 一.域名 1.定义 域名是用于在识别和定位Internet上计算机的层次结构式的字符标识,它对应于计算机 ...
最新文章
- vim的高级用法配置以及在系统中如何获取帮助
- Could not initialize class sun.awt.X11GraphicsEnvironment
- Xamarin Android开发实战(上册)
- Debian中几个bash初始化脚本使用区别--【转载】
- 【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )
- TensorFlow版的“Hello World”,运行官网第一个例子
- Django路由系统
- android:layout_width=0.0dip,【教程】状态栏显示网速
- python list转换成树形结构_python递归查询菜单并转换成json实例
- 漫画:云市场下,运营商甲方爸爸也出来抢乙方生意了?
- c#-多线程中lock用法的经典实例
- eclipse 改java版本_修改eclipse工程jdk版本
- 【Unity】Unity3D RPG游戏制作实例(二)开发思路及概要设计
- 基本共射放大电路的工作原理
- IPv6 节点主动访问 IPv4 节点-地址池方式的NAT64配置
- MEC — 边缘网络
- SpringBoot+百度云API 实现人脸识别功能
- 【操作系统与安全】考点总结
- 12.27追求世俗意义上的成功与心灵快感的矛盾
- 不知不觉发财10大秘诀(转)
热门文章
- 医院录用计算机专业信息科试题,(完整word版)医院信息科考试试题及答案,推荐文档...
- 【DONET学习笔记】C#与VB.NET除法运算的区别
- 神经网络(Neural Networks)
- 3.1递归实现逆序输出整数
- 服务器主机型号,服务器的主机型号
- #644 (Div. 3)F. Spy-string(暴力枚举)
- 海思3559A平台4GB LPDDR配置方案
- 计算机运用基础 南开在线作业,《大学计算机基础》20秋南开在线作业百分
- 单片机实验(十五)74LS47数码管译码
- Ceph RBD:条带(stripe)详解