首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux网络编程系列(四)--tcp包头、三次握手、四次挥手、状态

TCP协议 1.1 TCP数据包头 要了解三次握手和四次挥手,首先需要了解下TCP数据包头的结构,如下: ?...为了确保TCP连接的成功建立,TCP采用了一种称为三次握手的方式,三次握手方式使得“序号/确认号”系统能够正常工作,从而使它们的序号达成同步。如果三次握手成功,则连接建立成功,可以开始传送数据信息。...三次握手:为应用程序提供可靠的通信连接,适合于一次传输大批数据的情况,并适用于要求得到响应的应用程序。...CLOSED:表示初始状态; LISTEN:表示服务器端的某个socket处于监听状态,可以接受连接; SYNSENT:三次握手时,客户端发送第一次SYN连接请求后,状态SYNSENT; SYN_RCVD...:也是三次握手时服务端的一个中间状态; ESTABLISHED:表示连接已经建立,这里要说明一下,其实TCP连接并不是真的有什么东西连着在,只是说双方都是ESTABLLISHED状态,就说明双方连接正常

53710
您找到你想要的搜索结果了吗?
是的
没有找到

基础知识-网络-TCP三次握手

从今天开始,尽量再多更一篇基础知识,基本都是面试时的高频基础知识问题,会包括网络+操作系统+组成原理,一来帮大家回忆,二来通过面试。...毕竟作为一名工程师,底子要深厚,生产时出了错,知道原理,就会有底气得多~而原理,都是来源于我们学习的基础知识~ 二 今天先来网络的,TCP三次握手     网络协议中,TCP是多么地重要,不用我多说,...今天先给大家讲一下三次握手~ ?...(2)第二次握手 ?        服务端确认,并,建立连接         所以ACK=1,SYN=1         (3)第三次握手 ?...四 经典面试题 Q:为什么TCP需要三次握手,而不是两次握手? 答:谢希仁版《计算机网络》中,是这样解释的:     主要是为了防止已失效的连接请求报文段,突然又传到了服务端。

36520

网络显形计(实战TCP三次握手

摘要 网络显形准备 实战TCP三次握手问题 网络显形准备 tcpdump命令 选项 示例 描述 -i tcpdump -i eth0 指定网络接口,any表示所有接口 -nn tcpdum -nn 不解析...执行抓包命令 tcpdump -i eth0 -nn icmp and host 172.17.0.3 在Nginx Server上执行抓包命令以后可以看到以下输出: 上述表述的信息还是比较少的,我们在linux...TCP三次握手流程我们已经详细讲述过,但现实往往不是圆满的,总会有这样那样的问题,在TCP握手的过程中每一个环节都有可能出现问题: TCP的第一次握手SYN包丢失 TCP的第二次握手SYN+ACK包丢失...Linux第一次握手的重传次数由谁决定?...-> netfilter/iptables 网络包从主机出去的顺序为:iptables -> tcpdump -> NIC -> Wire 二次握手的包最大重传次数由谁决定?

69810

TCPIP 七层网络模型 三次握手

也是Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。...从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。...这7层是:物理层、数据链路层(网络接口层)、网络层(网络层)、传输层(传输层)、会话层、表示层和应用层(应用层)。...由于ARPANET的设计者注重的是网络互联,允许通信子网(网络接口层)采用已有的或是将来有的各种协议,所以这个层次中没有提供专门的协议。...相关阅读: 四次握手:https://www.cnblogs.com/nulige/p/6235550.html 七层网络:https://blog.csdn.net/u011936381/article

2.4K10

HTTPS握手

握手过程中采用非对称加密,得到一个对称加密的秘钥。数据传输的过程中,采用对称加密。...采用非对称加密比较慢,因此只在握手期间采用非对称加密,保证拿到的对称加密的秘钥的安全性,数据传输期间通过对称加密来加密,速度更快。...握手: 对称加密秘钥的生成: 握手期间,client与server两次往来。会生成三个随机数,由这三个随机数组成对称加密的秘钥。...数据传输: http报文的内容都会经过TLS层进行对称加密,秘钥是握手时生成的。发送使用秘钥加密,接收时使用秘钥解密。...但是为了足够安全,我们可以考虑把握手阶段的算法从默认的RSA算法,改为 Diffie-Hellman算法(简称DH算法)。 下面是DH算法握手的过程: ?

76770

图解网络:TCP三次握手背后的原理,为啥两次握手不可以?

你好,这里是网络技术联盟站。TCP是 Internet 协议套件的主要协议之一,它位于应用层和网络层之间,用于提供可靠的连接服务,是一种面向连接的通信协议,有助于通过网络在不同设备之间交换消息。...【第二次握手】小明:好的,我知道你是小美了。【第三次握手】经历三次握手后,小明可以可以很明确的确定对方就是小美,非常可靠!假如只有一次握手,那么小明问完“你好,请问是小美吗?”...专业角度的三次握手下面我们来看下专业的三次握手。...如果网络不可靠,最好将TCP 窗口设置小一点,这样,如果出现问题,就不必重新传输非常大的数据。...TCP三次握手生活中的三次握手专业角度的三次握手TCP三次握手抓包分析TCP窗口其他参数TCP为什么不能二次握手建立连接总结感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞、收藏⭐哦!

79210

tcp握手失败怎么办_TCP协议握手

Linux 里,客户端的 SYN 报文最大重传次数由 tcp_syn_retries 内核参数控制,这个参数是可以自定义的,默认值一般是 5。...第二次握手的 SYN-ACK 报文其实有两个目的 : 第二次握手里的 ACK, 是对第一次握手的确认报文; 第二次握手里的 SYN,是服务端发起建立 TCP 连接的报文; 所以,如果第二次握手丢了,就会发送比较有意思的事情...因为第二次握手报文里是包含对客户端的第一次握手的 ACK 确认报文,所以,如果客户端迟迟没有收到第二次握手,那么客户端就觉得可能自己的 SYN 报文(第一次握手)丢失了,于是客户端就会触发超时重传机制,...在 Linux 下,SYN-ACK 报文的最大重传次数由 tcp_synack_retries 内核参数决定,默认值是 5。...在 Linux 系统,TIME_WAIT 状态会持续 60 秒后才会进入关闭状态。 然后,服务端(被动关闭方)没有收到 ACK 报文前,还是处于 LAST_ACK 状态。

77950

新梦想干货分享|网络情缘之TCP的握手和分手

最近给学员们复习接口测试的时候,有人找到一个面试的时候被问到的问题:“请说明TCP的三次握手。”然后有人笑着回答说:“就是问女朋友‘约吗’?”女朋友说:“约”,然后再说:“走吧”,这样的过程。...看到这里大家应该差不多知道TCP建立连接的三次握手是怎么回事了 。...图一:wireshark抓取的数据包 第一次握手:192.168.1.105发送位码syn=1数据包到119.75.219.45,119.75.219.45由SYN=1知道192.168.1.105要求建立联机...; 第二次握手:119.75.219.45收到请求后要确认联机信息,向192.168.1.105发送ack , v发送syn=1,ack=1的确认包; 第三次握手:192.168.1.105收到后检查位码...图二、三次握手     小明的床经过很多次快递后,终于把所有的零部件都送出去了。这时小MM说:“都发过去了,可以跟那边不联系了。”于是把之前的小弟叫来说:“跟那边说一下,该发的包都发送完了。”

27700

网络协议:TCP三次握手与四次挥手

IP 协议,制定了一套新地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的 IP 地址。...为了判断 IP 地址中的网络地址,IP 协议还引入了子网掩码,IP 地址和子网掩码通过按位与运算后就可以得到网络地址。...---- 二、TCP 的三次握手 1、TCP 三次握手概述 三次握手的本质是确认通信双方收发数据的能力。...三次握手详细过程: 第一次握手,客户端向服务端发起连接请求: 首先,客户端会生成一个随机起始序列号 ISN(比如是100), 然后客户端向服务端发送报文,此时报文段包含 SYN 标志位(也就是...连接管理:三次握手、四次挥手 重传机制:但在复杂的网络环境下,并不一定能正常的数据传输,万一数据在传输过程中丢失了呢?所以 TCP 针对数据包丢失的情况,会用重传机制解决。

33010

Linux网络管理

前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 Linux用户和权限管理看了你就会用啦 Linux进程管理 这篇主要讲解在Linux网络的管理。...那么接下来就开始吧,如果文章有错误的地方请大家多多包涵,不吝在评论区指正哦~ 声明:基于Centos6.9 一、Linux下的网络 Linux支持各种协议类型的网络 TCP/IP、NetBIOS/NetBEUI...这些网络协议是Linux内核提供的功能,具体的支持情况由内核编译参数决定。 ?...在Linux下配置网络,总会遇到桥接和NAT模式的概念的,这里我简要摘抄一下: 桥接模式的虚拟机,就像一个在路由器"民政局"那里"上过户口"的成年人,有自己单独的居住地址,虽然和主机住在同一个大院里,...四、总结 本文主要是总结了Linux网络和安装软件的知识~~~这两个知识点在Linux下也是很重要的,是学习Linux的基础~ 继续完善上一次的思维导图: ?

3K00

Linux网络命令

hostname : 查看主机名 或临时修改主机名 cat  /etc/sysconfig/network : 查看主机名设置文件, 修改 hostname可持久化修改主机名(但阿里云服务器linux...系统中未发现该文件) ifconfig : 查看服务器IP地址 或临时修改服务器IP地址  service network restart : 重启系统网络服务 (service xxx restart...: 重启某个服务) cat  /etc/sysconfig/network-scripts/ifcfg-eth0 : 查看网络配置文件 通过 vim 修改网络配置文件 ,可持久化修改服务器IP地址...    ONBOOT=YES(每一次重启网络服务,该网络配置自动生效)   BOOTPROTO=STATIC(网络服务改为静态,不让其动态自动获取)   IPADDR = 192.168.177.128...) 保存后通过 service network restart : 重启系统网络服务,来生效。

99120

Linux 网络配置

# Linux 网络配置 # 画出原理图,帮助理解 # 查看网络IP和网关 # 查看虚拟网络编辑器和修改IP地址 # 查看网关 # 查看windows环境中VMnet8网络配置 指令:ipconfig...ipconfig # 查看Linux网络配置 指令:ifconfig ifconfig # ping测试主机之间网络连通性 # 基本语法 ping 目的主机 (功能描述:测试当前服务器是否可以连接目的主机...) # 应用实例 测试当前服务器是否可以连接百度 ping www.baidu.com # Linux网络配置环境 # 第一种方法(自动获取) 说明:登陆后,通过界面的来设置自动获取ip,特点:linux...service network restart 或者 reboot # 设置主机名和hosts映射 # 设置主机名 为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名 指令hostname...:查看主机名 修改文件在/etc/hostname指定 vim /etc/hostname 修改后,重启生效 # 设置hosts映射 思考:如何通过主机名能够找到(比如ping)某个linux系统?

7.6K20

linux 网络管理

现代人的生活越来越依赖网络,对于一个操作系统来讲,网络功能的支持和管理就更为重要了,本节课我们一起来看一下在CentOS8中如何对网络进行管理 NetworkManager和常用工具和基本用法 NetworkManager...介绍 在linux系统中传统的网络管理方法是用过一个叫network的服务来实现,在CentOS7中依然有这个服务的身影,但是到了CentOS8中已经不使用network这个服务了,而是使用了一个叫NetworkManager...cockpit:基于web的管理工具 nmcli基本用法 ​nmcli命令的用法类似linux中以前的ip命令,而且支持tab补全,另外也可以使用-h或者–help获取帮助 [root@zutuanxue...on/off 监控网络状态 [root@zutuanxue ~]# nmcli monitor (ctrl+c结束) ens37: 停用中 网络管理器现在处于 "已连接(仅本地)" 状态 连接性现在是...30s [online] 使用其他网络管理方式配置网络 nmtui [root@zutuanxue ~]# nmtui cockpit [root@zutuanxue ~]# rpm -qa | grep

2K30

Linux网络管理

本文包括: 查看网络接口、配置网络接口、重启网络接口、路由命令 route、主机名称命令 hostname、网络工具 1....查看网络接口 显示当前系统所有活动接口 # ifconfig 显示当前系统所有网络接口 # ifconfig -a 查看网络接口IP地址 # ip address show 2....重启网络接口 使用关闭、启动网络服务的方式重启网络接口 # service network stop # service network start # service network restart...使用ifconfig命令的down、up参数重启网络接口 # ifconfig eth1 down # ifconfig eth1 up 使用ifdown、ifup命令重启网络接口 # ifdown...值 网络路经测试命令 traceroute 测试到目标主机之间的所有路由器的连通情况 # traceroute 192.168.144.186 查看网络状态命令 netstat 参数 i:查看网络接口的使用情况

1.8K20

Linux 网络管理

Linux网络管理基础 常用命令ifconfignmtuiping等 能够熟练使用此些命令 网络接口分类 以太网:en开头 Wlan(无线局域网):w1开头 Wwan(无线城域网):www开头 网络的配置...可以通过修改网卡配置文件来设置网络,网卡配置文件默认在/etc/sysconfig/network-script文件夹内 nmcli nmtui最简单也最常用的一个命令,他可以提供一个图形界面来帮助我们配置网卡...128.0.0.0 - 191.255.0.0 子网掩码255.255.0.0 /16 C类192.0.0.0 - 223.255.255.0 /24 修改IP地址方法 ifconfig不仅可以查看网络接口状态...,还可以修改网络接口配置 ifconfig [接口] [IP地址] [netmask子网掩码] #例如: ifconfig ens33 192.168.1.2 #将ens33网卡的IP地址设为192.168.1.2...ens33 192.168.1.2 netmask 255.255.255.0 #将ens33网卡的IP地址设为192.168.1.2 子网掩码设为255.255.255.0 nmcli基础命令 显示所有网络链接状态

73420
领券