三次握手

TCP/IP协议的认识

人盡茶涼 提交于 2020-04-08 11:47:00
TCP/IP协议的认识 一、简介 TCP/IP协议是一个协议集合。大家叫的时候方便说,所以统称为TCP/IP。 HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议在整个网络流程中的地位,也能更加充分的理解HTTP协议。 TCP/IP协议族中有一个重要的概念是分层,TCP/IP协议按照层次分为四层:应用层、传输层、网络层、数据链路层。 二、与HTTP 关系密切的协议 : IP、TCP 和 DNS 1、IP协议: IP协议的作用在于把各种数据包准确无误的传递给对方,其中两个重要的条件是IP地址,和MAC地址(Media Access Control Address)。 2、TCP协议 如果说IP协议是找到对方的详细地址。那么TCP协议就是安全地把东西带给对方。各有分工,互不冲突。 TCP属于传输层,提供可靠的字节流服务,为了确保信息能够确保准确无误的到达,TCP采用了著名的三次握手策略(three-way handshaking) 3、DNS DNS(Domain names System) 和HTTP协议一样是处于应用层的服务,提供域名到IP地址之间的解析服务。 下面是我们访问一个网页,各种协议在里面起的作用: 参考链接:https://www.cnblogs.com/roverliang/p/5176456.html 来源: https://www.cnblogs

TCP漫谈之keepalive和time_wait

此生再无相见时 提交于 2020-04-08 00:29:42
TCP是一个有状态通讯协议,所谓的有状态是指通信过程中通信的双方各自维护连接的状态。 一、TCP keepalive 先简单回顾一下TCP连接建立和断开的整个过程。(这里主要考虑主流程,关于丢包、拥塞、窗口、失败重试等情况后面详细讨论。) 首先是客户端发送syn(Synchronize Sequence Numbers:同步序列编号)包给服务端,告诉服务端我要连接你,syn包里面主要携带了客户端的seq序列号;服务端回发一个syn+ack,其中syn包和客户端原理类似,只不过携带的是服务端的seq序列号,ack包则是确认客户端允许连接;最后客户端再次发送一个ack确认接收到服务端的syn包。这样客户端和服务端就可以建立连接了。整个流程称为三次握手。 建立连接后,客户端或者服务端便可以通过已建立的socket连接发送数据,对端接收数据后,便可以通过ack确认已经收到数据。 数据交换完毕后,通常是客户端便可以发送FIN包,告诉另一端我要断开了;另一端先通过ack确认收到FIN包,然后发送FIN包告诉客户端我也关闭了;最后客户端回应ack确认连接终止。整个流程成为四次挥手。 TCP的性能经常为大家所诟病,除了TCP+IP额外的header以外,它建立连接需要三次握手,关闭连接需要四次挥手。如果只是发送很少的数据,那么传输的有效数据是非常少的。 是不是建立一次连接后续可以继续复用呢

Wireshark抓包,带你快速入门

回眸只為那壹抹淺笑 提交于 2020-04-07 19:22:29
原文: Wireshark抓包,带你快速入门 前言 关于抓包我们平时使用的最多的可能就是Chrome浏览器自带的Network面板了(浏览器上F12就会弹出来)。另外还有一大部分人使用Fiddler,Fiddler也是一款非常优秀的抓包工具。但是这两者只能对于HTTP和HTTPS进行抓包分析。如果想要对更底层的协议进行分析(如TCP的三次握手)就需要用到我们今天来说的工具Wireshark,同样是一款特牛逼的软件,且开源免费自带中文语言包。 安装和基本使用 Wireshark开源地址: https://github.com/wireshark/wireshark Wireshark下载地址: https://www.wireshark.org/download ,这里有它的历史版本。今天我们就来安装最新版本3.2.0,一路默认“下一步”安装大法就可以了。安装好后默认就是中文版。 开始抓包 显示过滤器 你会发现第一部分内容跳到非常快,根本没法找到自己想要分析的内容。这里我们可以使用显示过滤器,只显示我们想要看的内容。 在显示过滤器填入 http.reques127.0.0.1thod == "GET" ,然后用Chrome浏览器访问 http://fanyi-pro.baidu.com/index (特意找的一个http网站) 除了过滤Get请求外,常用的显示过滤器还有: tcp

TCP漫谈之keepalive和time_wait

醉酒当歌 提交于 2020-04-07 19:16:23
TCP是一个有状态通讯协议,所谓的有状态是指通信过程中通信的双方各自维护连接的状态。 一、TCP keepalive 先简单回顾一下TCP连接建立和断开的整个过程。(这里主要考虑主流程,关于丢包、拥塞、窗口、失败重试等情况后面详细讨论。) 首先是客户端发送syn(Synchronize Sequence Numbers:同步序列编号)包给服务端,告诉服务端我要连接你,syn包里面主要携带了客户端的seq序列号;服务端回发一个syn+ack,其中syn包和客户端原理类似,只不过携带的是服务端的seq序列号,ack包则是确认客户端允许连接;最后客户端再次发送一个ack确认接收到服务端的syn包。这样客户端和服务端就可以建立连接了。整个流程称为三次握手。 建立连接后,客户端或者服务端便可以通过已建立的socket连接发送数据,对端接收数据后,便可以通过ack确认已经收到数据。 数据交换完毕后,通常是客户端便可以发送FIN包,告诉另一端我要断开了;另一端先通过ack确认收到FIN包,然后发送FIN包告诉客户端我也关闭了;最后客户端回应ack确认连接终止。整个流程成为四次挥手。 TCP的性能经常为大家所诟病,除了TCP+IP额外的header以外,它建立连接需要三次握手,关闭连接需要四次挥手。如果只是发送很少的数据,那么传输的有效数据是非常少的。 是不是建立一次连接后续可以继续复用呢

网络抓包wireshark

为君一笑 提交于 2020-04-06 21:11:35
抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle、wireshark,作为一个不是经常要抓包的人员,学会用 Wireshark就够了,毕竟它是功能最全面使用者最多的抓包工具。 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。 网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。在过去,网络封包分析软件是非常昂贵的,或是专门属于营利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。 wireshark是开源软件,可以放心使用。 可以运行在Windows和Mac OS上。 Wireshark不能做的

计算机网络中的一些概念

别说谁变了你拦得住时间么 提交于 2020-04-06 13:34:51
OSI,TCP/IP,五层协议的体系结构,以及各层协议 答:OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。 五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。 每一层的协议如下: 物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器) 数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机) 网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器) 传输层:TCP、UDP、SPX 会话层:NFS、SQL、NETBIOS、RPC 表示层:JPEG、MPEG、ASII 应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS 每一层的作用如下: 物理层:通过媒介传输比特,确定机械及电气规范(比特Bit) 数据链路层:将比特组装成帧和点到点的传递(帧Frame) 网络层:负责数据包从源到宿的传递和网际互连(包PackeT) 传输层:提供端到端的可靠报文传递和错误恢复(段Segment) 会话层:建立、管理和终止会话(会话协议数据单元SPDU) 表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU) 应用层:允许访问OSI环境的手段(应用协议数据单元APDU) ARP是地址解析协议

前端面试--计算机网络知识(1)

不问归期 提交于 2020-04-06 11:54:14
昨天去面试了一个前端实习的岗位,被问得一脸懵逼,留下了不学无术的泪。现在来重新学习一下计网知识。 1.计算机网络的体系结构 我们平常学习的是最后一个五层结构,土方法记忆:有设备、连线、连网,确定能够传数据后,才能使用各种软件应用。 2.各层级使用的协议 1.应用层 HTTP (Hypertext Transfer Protocol )超文本传输协议 <端口号 80>, 面向事务的应用层协议 SMTP (Simple Mail Transfer Protocol )简单邮件传输协议 <端口号25> 用于发送邮件。 FTP (File Transfer Protocol )文件传输协议<端口号21>减少或消除不同操作系统下处理文件的不兼容性。 TELNET 远程登录协议 <端口号23> 2.运输层 TCP (Transmission Control Protocol )传输控制协议提供可靠的面向连接的服务,传输数据前须先建立连接,结束后释放。可靠的全双工信道。可靠、有序、无丢失、不重复。 UDP (User Datagram Protocol )用户数据报协议发送数据前无需建立连接,不使用拥塞控制,不保证可靠交付,最大努力交付。 TCP的三次握手和四次挥手是面试官最喜欢问的问题,要了解它们的原理和特点。 (1)三次握手 第一次握手 : 你好, 我是A, 你能听到我说话吗第二次握手 :

计算机网络面试题

被刻印的时光 ゝ 提交于 2020-04-06 11:54:06
一、三次握手的过程 1、客户端向服务器端发送连接请求数据包,SYN=1,ACK=0,seq=x; 2、服务器收到请求后,向客户端发送确认连接数据包,SYN=1,ACK=1,seq=y,ack=x+1; 3、客户端收到确认连接报文后,做出确认,向服务器端发送确认是数据包,seq=x+1,ack=y+1,ACK=1。 二、为什么要三次握手 只有三次握手才能确认双方发送和接收是正常的。 第一次握手:服务器端确认客户端发送、自己接收正常;第二次握手:客户端确认自己发送和接收、服务器端发送和接收正常;第三次握手双方都可以确认接收和发送正常。 三、四次挥手的过程 1、客户端向服务器端发送一个FIN,用来关闭客户端到服务器的数据传送; 2、服务器端收到这个FIN,返回一个ACK; 3、服务器端发送一个FIN,用来关闭服务器端到客户端的数据传送; 4、客户端发回ACK报文确认。 四、IP地址与MAC地址的区别 1、IP地址是逻辑地址,可以更改,MAC地址是物理地址,不能更改; 2、MAC地址用于数据链路层转发数据帧,IP地址用于网络层转发数据报; 3、MAC地址48位,IP地址32位。 五、HTTP请求、响应报文格式 HTTP请求报文主要由请求行、请求头部、请求正文3部分组成;HTTP响应报文主要由响应行、响应头部、响应正文3部分组成。 来源: oschina 链接: https://my

网络协议和管理

强颜欢笑 提交于 2020-04-06 00:37:27
1、简述osi七层模型和TCP/IP五层模型; 物理层 在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。 物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。 数据链路层 数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。 在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。 该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。 MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制; LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

http、tcp、udp、cookie、session、web 应用之间的无状态和有状态传输

↘锁芯ラ 提交于 2020-04-06 00:03:37
无状态含义 每次的请求都是独立的,即不会受上一次请求状态的影响,也不会影响下一次的请求进程。如http 、udp 、ip均为无状态请求 有状态含义 与无状态请求相对应,上一次的请求成功与否直接影响下一次的请求进程。如tcp 为有状态请求 tcp 有状态请求过程 tcp的三次握手 1、当客户端开始发送请求建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。 2、服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态 3、客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手 SYN:同步序列编号(Synchronize Sequence Numbers) tcp的四次挥手 与tcp的三次握手建立连接对应,tcp的四次挥手就断开连接 1、客户端发送一个FIN,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态 2、服务器端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务器端进入CLOSE_WAIT状态 3、服务器端发送一个FIN,用来关闭服务器端到客户端的数据传送