TCP 建立的3次握手, 和关闭的4次握手
TCP/IP 寻址
TCP/IP 使用 32 个比特或者 4 个 0 到 255 之间的数字来为计算机编址。
TCP/IP 连接
用S(service) 代表服务端, C(client) 代表客户端
建立连接
建立连接, 需要3此握手
首先, C --> S, 发送SYN请求, 告诉S我要跟你建立连接了,
接着, S --> C, 回应SYN+ACK, 我接受到你的请求, 可以建立连接,
最后, C --> S, C 会再次发送ACK请求回应S 确认, 我们建立连接. 为什么要3次握手:
当S 收到C 的SYN连接请求后, 可以直接发送SYN+ACK报文, 其中ACK报文是用来应答的, SYN报文用来同步的, 双方都在同意的情况下建立连接, 保证了连接的安全性
关闭连接
关闭连接, 需要4此握手
首先, C --> S, 发送一条FIN, 告诉S 可以关闭了,
然后, S --> C, S 接收会回应已提交ACK. 告诉C 我还没准备好关闭呢, 等一会,
接着, S --> C, 当S 准备好了, 发送一条FIN, 我已经准备好关闭了,
最后, C --> S, C 接收到会发送一条ACK确认信息, 保证大家一起关闭. TCP连接也这样关闭了.
(考虑网络不稳定的情况, 还做了一个操作, 就是等待超过2MSL之后才能进入Closed状态, 万一ACK有丢失, 就会一直处在TIME_WAIT状态中, 所以才需要等待一个报文段最大时间之后进入Closed状态) 为什么要4次握手呢:
当S 端收到C 端的报文, S 端可能没处理完事情, 所以不会立即关闭Socket, 只能先回复一条ACK, 告诉C 端我收到你的请求, 当S 的事都做完了, 马上会发送FIN报文, 告诉C 我们可以关闭了, TCP也就关闭了
SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。
ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。
域名
将12个数字使用一个TCP/IP 地址表示被称为域名
当你键入一个像 http://www.w3school.com.cn 这样的域名,域名会被一种 DNS 程序翻译为数字
协议
TCP/IP 是不同的通信协议的大集合。
协议族
TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大的集合。
TCP - 传输控制协议
TCP 用于从应用程序到网络的数据传输控制。
TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。
IP - 网际协议
IP 负责计算机之间的通信。
IP 负责在因特网上发送和接收数据包。
HTTP - 超文本传输协议
HTTP 负责 web 服务器与 web 浏览器之间的通信。
HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。
HTTPS - 安全的 HTTP
HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。
作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。
SSL - 安全套接字层
SSL 协议用于为安全数据传输加密数据。
SMTP - 简易邮件传输协议
SMTP 用于电子邮件的传输。
MIME - 多用途因特网邮件扩展
MIME 协议使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。
IMAP - 因特网消息访问协议
IMAP 用于存储和取回电子邮件。
POP - 邮局协议
POP 用于从电子邮件服务器向个人电脑下载电子邮件。
FTP - 文件传输协议
FTP 负责计算机之间的文件传输。
NTP - 网络时间协议
NTP 用于在计算机之间同步时间(钟)。
DHCP - 动态主机配置协议
DHCP 用于向网络中的计算机分配动态 IP 地址。
SNMP - 简单网络管理协议
SNMP 用于计算机网络的管理。
LDAP - 轻量级的目录访问协议
LDAP 用于从因特网搜集关于用户和电子邮件地址的信息。
ICMP - 因特网消息控制协议
ICMP 负责网络中的错误处理。
ARP - Address Resolution Protocol
ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。
RARP - Reverse Address Resolution Protocol
RARP 用于通过 IP 查找基于硬件地址的计算机网卡的 IP 地址。
BOOTP - Boot Protocol
BOOTP 用于从网络启动计算机。
PPTP - 点对点隧道协议
PPTP 用于私人网络之间的连接(隧道)。
TCP 建立的3次握手, 和关闭的4次握手的更多相关文章
- 为什么 TCP 建立连接是三次握手,关闭连接确是四次挥手呢?
Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:小书go https://blog.csdn.net/qzcsu/article/details/72861891 背 ...
- 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?
看到了一道面试题:"为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?",想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章 ...
- 通俗易懂地讲解TCP建立连接的三次握手和释放连接的四次挥手
TCP建立连接时,为什么要进行三次挥手? 每一次TCP连接都需要三个阶段:连接建立.数据传送和连接释放.三次握手就发生在连接建立阶段. 在谢希仁著<计算机网络>第四版中讲三次握手的目的是为 ...
- TCP建立连接三次握手和释放连接四次握手
TCP建立连接三次握手和释放连接四次握手 [转载]http://blog.csdn.net/guyuealian/article/details/52535294 在谈及TCP建立连接和释 ...
- 【转】TCP建立连接三次握手和释放连接四次握手
在谈及TCP建立连接和释放连接过程,先来简单认识一下TCP报文段首部格式的的几个名词(这里只是简单说明,具体请查看相关教程) 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数 ...
- TCP建立连接的三次握手和TCP连接断开的四次挥手
1. TCP建立连接的3次握手 2. TCP断开连接的四次挥手 [注意]中断连接端可以是Client端,也可以是Server端. 图3—Client端主动发起关闭连接请求 1. 假设Client端主动 ...
- TCP建立连接的三次握手和释放连接的四次挥手
TCP建立连接时,为什么要进行三次握手? 举个打电话的例子: A : 你好我是A,你听得到我在说话吗 B : 听到了,我是B,你听到我在说话吗 A : 嗯,听到了 建立连接,开始聊天! 第一次握手 第 ...
- 深入理解TCP建立和关闭连接
建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端 接收方发送的确认信息中包含了自 ...
- tcp建立连接为什么需要三次握手和四次挥手
前言 众所周知tcp传输层协议在建立连接的时候需要三次才能建立起一个真正的可靠连接,可是为什么是三次呢,不可以是两次,四次等等呢,可以自己思考一番,带着疑问可以看下文. 三次握手 在<计算机网络 ...
随机推荐
- 获取和验证Windows AD域的用户信息
1.获取windows AD域用户信息,首先需要有一个ad域管理员权限的账号,用这个账号连接ad域,获取所有域用户信息 用LdapContext,它继承自DirContext public Objec ...
- 卷积 & 杜教筛
目录 卷积 杜教筛 前言:发现最近都没怎么写博客,,,赶紧发篇以前记的笔记凑凑数 卷积 卷积定义: 如果有数论函数\(f, g\), 那么它们卷积的第\(n\)项为\((f * g) (n)\),设这 ...
- KinFu --- KinectFusion的开源实现
KinectFusion是微软研究院的一个项目,研究用Kinect来实时地重构3D表面,最终用于人机交互. 先看视频:http://research.microsoft.com/en-us/proje ...
- 转载乙醇大师的appium简明教程
appium简明教程(11)——使用resource id定位(仅支持安卓4.3以上系统) 乙醇 2014-06-28 21:01 阅读:16406 评论:21 appium简明教程(10)——控件定 ...
- 洛谷P2398 GCD SUM
题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入格式: n 输出格式: sum ...
- 安装好dashboard 登录出现错误
验证发生错误.请稍后再试一次. While turning SELinux off certainly does the trick, it is somewhat like using a sled ...
- 手脱FSG 2.0 -> bart/xt
声明: 只为纪录自己的脱壳历程,高手勿喷 1.在入口的第二行ESP定律下硬件断点然后F9运行8次(因为第9次就跑飞了) 0040955C > pushad 0040955D EB jmp //E ...
- centos7.2的yum安装mysql和修改初始密码
一.centos7.2安装mysql CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变: 下载mysql的源 wget http://de ...
- ASP.NET Core的身份认证框架IdentityServer4--IdentityServer相关文章【记录】
Identity Server 4 预备知识 -- OpenID Connect 简介: 原文地址
- HDP安全之集成kerberos/LDAP、ranger(knox自带LDAP)
----------------------目录导航见左上角------------------------------- 环境 HDP 3.0.1.0 (已有) JDK 1.8.0_91 (已有 ...