tcp四次挥手

非科班生网络通信必会知识点归纳

心不动则不痛 提交于 2020-02-27 11:45:43
一、 网络模型 网络模型分两种,一种是OSI模型,一种是TCP/IP模型,后者应用更加广泛。这里也主要介绍TCP/IP模型。 (一)TCP/IP模型 首先分为4层,从上到下依次是应用层、传输层、网络层、数据链路层。 OSI模型中将网络分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 TCP/IP的应用层是OSI模型中应用层、表示层、会话层的集合,而物理层由于不是我们经常考虑的问题,所以TCP/IP模型没有把物理层算上。 1、数据链路层 数据链路层的核心是以太网协议。以太网协议规定一组电信号是一个数据包,叫一个振,每个帧(frame)分为标头(head)和数据(data),标头包含一些说明性东西,比如发送者,接收者,和数据类型之类的。例如一个电脑发个数据包出去,会广播给局域网(子网)内所有电脑设备的网卡,然后每台设备都从数据包获取接收者的mac地址与自己网卡的mac地址比对,如果一样就说明这是发给自己的数据包。 2、网络层 定义了一套IP协议,有IPV4和IPV6,以IPV4为例,由32个二进制数字组成,用4个10进制数字表示。 IP地址分为三类: A类:第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。 B类:前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”

tcpdump常用命令

泪湿孤枕 提交于 2020-02-26 23:32:32
tcpdump 是 Linux 系统提供的一个非常强大的抓包工具,熟练使用它,对我们排查网络问题非常有用。如果你的机器上还没有安装,可以使用如下命令安装: yum install tcpdump 如果要使用 tcpdump 命令必须具有 sudo 权限。 tcpdump 常用的选项有: -i 指定要捕获的目标网卡名,网卡名可以使用前面章节中介绍的 ifconfig 命令获得;如果要抓所有网卡的上的包,可以使用 any 关键字。 ## 抓取网卡ens33上的包 tcpdump -i ens33 ## 抓取所有网卡上的包 tcpdump -i any -X 以 ASCII 和 十六进制 的形式输出捕获的数据包内容,减去链路层的包头信息; -XX 以 ASCII 和 十六进制 的形式输出捕获的数据包内容,包括 链路层的包头信息 。 -n 不要将 ip 地址显示成别名的形式; -nn 不要将 ip 地址和端口以别名的形式显示。 -S 以绝对值显示包的 ISN 号(包 序列号 ),默认以上一包的偏移量显示。 -vv 抓包的信息详细地显示; -vvv 抓包的信息更详细地显示。 -w 将抓取的包的原始信息(不解析,也不输出)写入文件中,后跟文件名: tcpdump -i any -w filename -r 从利用 -w 选项保存的包文件中读取数据包信息。 除了可以使用选项以外, tcpdump

HTTP请求过程

女生的网名这么多〃 提交于 2020-02-26 11:53:53
整个流程 域名解析 —> 与服务器建立连接 —> 发起HTTP请求 —> 服务器响应HTTP请求,浏览器得到html代码 —> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片) —> 浏览器对页面进行渲染呈现给用户 1. 域名解析 以Chrome浏览器为例: ① Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否有https://www.cnblogs.com 对应的条目,而且没有过期,如果有且没有过期则解析到此结束。 注:我们怎么查看Chrome自身的缓存?可以使用 chrome://net-internals/#dns 来进行查看 ② 如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统自身的DNS缓存,如果找到且没有过期则停止搜索解析到此结束. 注:怎么查看操作系统自身的DNS缓存,以Windows系统为例,可以在命令行下使用 ipconfig /displaydns 来进行查看 ③ 如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址,如果有则解析成功。 ④ 如果在hosts文件中也没有找到对应的条目

五分钟自学编程:计算机网络到底应该怎么学?!

自闭症网瘾萝莉.ら 提交于 2020-02-25 23:44:28
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 思维导图 简介 上一期我讲到了数据结构怎么学,当时我的学习方法是先看视频,再看书,然后刷一刷基础算法题做巩固。 作为一个非科班考研党,当时觉得这个学习路线还是比较平滑的,毕竟能让我一个小白快速学会,这门课相对来说还是比较简单的。 于是,等我读研的时候,打算以相同的学习方式来补一下其他几门计算机基础课程,首当其冲的就是计算机网络。 因为这门课实在重要,几乎是面试必问的内容,什么TCP/IP三次握手,四次挥手,TCP和UDP区别,HTTP协议的一堆面试题,在程序员面试时都是很常见的考题,你们应该也深有体会。 计算机网络中的复杂概念远不止这些,那么按照老规矩,我们先来看一下计算机网络到底是个啥。 根据百度百科的介绍,计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 相比于数据结构的介绍,百科上对于计算机网络的介绍更加好懂一些,简单来说,计算机网络就是把计算机通过通信线路连接起来,实现网络互联和信息传递。 为什么要学计算机网络 在这个时代,离开了网络,简直没有办法生存,而我们所学的编程知识,脱了网络去谈也将毫无意义,毕竟没有哪个编程语言是只支持单机运行的。 作为一个编程学习者

python学习之网络编程

。_饼干妹妹 提交于 2020-02-25 22:11:18
socket编程 本地进程间通信(IPC) • 队列 • 同步(互斥锁、条件变量等) • 管道 网络进程间通信 问题: 本地通过进程PID来唯一标识一个进程,在网络中如何唯一标识一个进程? 网络层的“IP地址”可以唯一标识网络中的主机,而传输层的“协议+端口” 可以唯一标识主机中的应用程序(进程)。因此利用IP地址,协议,端口就 可以标识网络的进程。 什么是socket? socket(简称套接字) 是进程间通信的一种方式, 能实现不同主机间的进程间通信,我们 网络上各种各样的服务大多都是基于 Socket 来完成通信的。 创建socket 在 Python 中 使用socket 模块的函数 socket 就可以完成: socket.socket(AddressFamily, Type) 1). Address Family: AF_INET: IPV4用于 Internet 进程间通信 AF_INET6: IPV6用于 Internet 进程间通信 2). Type:套接字类型 SOCK_STREAM: 流式套接字,主要用于 TCP 协议 SOCK_DGRAM: 数据报套接字,主要用于 UDP 协 议 01_socket对象的建立 import socket #1. 创建socket对象 #family: AF_INET(IPv4) AF_INET6(IPv6) ========

Java基础:计算机网络——TCP/IP、HTTP

人盡茶涼 提交于 2020-02-25 20:27:16
一、OSI与TCP/IP各层的结构与功能,都有哪些协议? OSI的7层协议和TCP/IP的四层协议的优点折中出了——五层协议体系结构 1.1、应用层 作用:进程间通信的规则,不同的网络应用需要不同的应用层协议 有两个应用层协议需要了解: 域名系统DNS: 以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串. 例如:一个公司的 Web 网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。比如:IBM 公司的域名是 www.ibm.com、Oracle 公司的域名是 www.oracle.com HTTP协议(超文本传输协议) : 所有的 WWW(万维网) 文件都必须遵守这个标准 1.2、传输层 作用:负责向两台主机进程之间的通信提供 通用的数据传输服务 传输控制协议TCP : 面向连接、可靠 用户数据协议UDP: 面向无连接、不可靠、尽最大努力传输服务 1.3、网络层 作用:在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。 以下是IP层协议: IP协议 1.4、数据链路层 作用:两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议

关于TCP协议的面筋整理

情到浓时终转凉″ 提交于 2020-02-24 20:16:14
TCP和UDP的特征及区别、分别适用于那些场景 特征 TCP:面向连接、面向字节流、提供拥塞控制、全双工、一对一通信、首部开销大(固定首部20字节)、提供可靠交付服务 UDP:无连接、面向报文、无拥塞控制、支持一对一、一对多、多对一、多对多的交互模式、头部开销小(仅8字节)、不可靠、时延小、实时性强 TCP报文段、UDP数据报首部相同部分:源端口、目的端口、校验和 区别 TCP是面向连接的;而UDP是无连接的,发送数据前不需要建立连接 面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道(TCP三次握手建立连接),连接双方要为连接分配内核资源。在通信过程中,整个连接的情况一直可以被实时地 监控和管理 非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。 TCP提供可靠的服务,即通过TCP连接传送的数据无差错、不丢失、不重复且按序到达;UDP只是尽最大努力交付,不保证可靠【可能丢包、不保证有序】 TCP面向字节流;UDP面向报文段 TCP连接只能点对点,而UDP支持一对一、一对多、多对一、多对多的交互模式 TCP数据传输慢;UDP数据传输快 TCP首部开销大;UDP首部开销小 TCP逻辑通信是全双工的可靠通信;UDP是不可靠通信

计算机网络之tcp与udp

爱⌒轻易说出口 提交于 2020-02-23 22:54:42
tcp 1. 报文格式 标志位 URG :指示报文中有紧急数据,应尽快传送(相当于高优先级的数据)。 PSH :为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。 RST :TCP连接中出现严重差错(如主机崩溃),必须释放连接,在重新建立连接。 FIN :发送端已完成数据传输,请求释放连接。 SYN :处于TCP连接建立过程。 (Synchronize Sequence Numbers) ACK :确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。 2. 三次握手 连接过程 1)TCP服务器进程打开,准备接受客户进程的连接请求,此时服务器进入了LISTEN(监听)状态 2)客户端向服务器发出连接请求报文,这时报文首部SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。 3)TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1(确认号),自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。

TCP状态转换图

与世无争的帅哥 提交于 2020-02-23 16:10:42
文章目录 正常打开关闭 三次握手 四次挥手 状态转换图 同时打开/同时关闭 同时打开 同时关闭 状态转换图 传送数据 图是参照TCP/IP详解自己画的分解图 正常打开关闭 三次握手 第一次握手(SYN=1,seq=x) 客户端发送SYN包到服务器 客户端进入 SYN_SEND 状态,等待服务器确认 第二次握手(SYN=1,ACK=1,seq=y,ack=x+1) 服务器收到SYN包,确认客户的SYN 服务器发送SYN+ACK包 服务器进入 SYN_RECV 状态 第三次握手(ACK=1,ack=y+1) 客户端收到SYN+ACK包 客户端发送ACK包 客户端进入 ESTABLISHED 状态,服务器收到ACK包后也进入 ESTABLISHED 状态 四次挥手 因为TCP是全双工的,因此在关闭连接的时候,必须关闭两个方向上的连接。 第一次挥手(FIN=1,seq=x) 假设是客户端想要关闭连接,客户端发送一个FIN包,表示自己没有数据可以发送了,但是可以接收数据 发送完毕,客户端进入 FIN_WAIT_1 状态 第二次挥手(ACK=1,ack=x+1) 服务器收到客户端的FIN包,表明自己接受到了客户端关闭连接的请求,但服务器没有做好准备关闭连接 服务器进入 CLOSE_WAIT 状态 客户端收到ACK包,进入 FIN_WAIT_2 状态,等待服务器关闭连接 第三次挥手(FIN=1

网络:tcp/ip

旧街凉风 提交于 2020-02-22 17:17:16
面试题: 长连接与短连接的区别? 访问服务器端多条数据文件时,短连接每次都要建立连接,长连接只需要建立一次连接; 长连接能推送信息给客户端;浏览器是长连接; 什么是三次握手和四次挥手? 浏览器每次TCP/IP网络连接都要发生三次握手和四次挥手 syn 网络是如何通信的,什么是tcp/ip协议? 用户发送请求,通过应用层http协议产生数据包,再通过传输层的tcp协议进行封装端口等信息,再到网络层通过ip协议封装ip地址,最终通过网络接口层发送给服务器 服务器接收到数据包,进行逐步拆分,进而程序处理,最终得到结果数据,进行封装,再发送给客户端;数据包里面有请求头和请求体; 来源: https://www.cnblogs.com/yunianzeng/p/12345944.html