三次握手

TCP报文段的首部格式

隐身守侯 提交于 2020-02-19 17:59:57
TCP报文段的首部格式 1.1.首部字段详解 TCP首部包括20字节的固定首部部分及长度可变的其他选项,所以TCP首部长度可变。20个字节又分为5部分,每部分4个字节32位,如图中的5行,每行表示32位。 在 传输层 ,TCP报文段包括:TCP首部和TCP数据部分;在 网络层 ,TCP报文段成为IP数据部分,加上IP首部组成IP数据报;在 数据链路层 ,还要在IP数据报前面加上数据链路层的首部。 源端口和目的端口 字段——各占 2 字节(16位)。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。 序号 字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。比如分组的第一个数据包由文件的1~4个字节数据组成,那么该数据包所添加的序号就是1,同理第二个数据包由文件的5~9个字节数据组成,那么该数据包所添加的序号就是5; 确认号 字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。比如接收端收到由文件1~4个字节数据+TCP首部组成的数据包后,删除首部提取1~4个字节数据,返回的确认号为5,即告诉发送端下一次应该发送文件的第5个字节及其之后字节组成的数据包过来。 数据偏移 (即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP

Java_TCP和UDP协议的联系与区别

孤者浪人 提交于 2020-02-18 14:35:17
TCP协议: TCP(Transfer Control Protocol)是面向连接的,所谓面向连接,就是当计算机双方通信时必需经过先建立连接,然后传送数据,最后拆除连接三个过程。 TCP在建立连接时又分三步走: 第一步,是请求端(客户端)发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号。 第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。 第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。然后才开始通信的第二步:数据处理。 这就是所说的TCP的三次握手(Three-way Handshake)。 UDP协议: 基于TCP协议可以建立稳定连接的点对点的通信。这种通信方式实时、快速、安全性高,但是很占用系统的资源。 在网络传输方式上,还有另一种基于UDP协议的通信方式,称为数据报通信方式。在这种方式中,每个数据发送单元被统一封装成数据报包的方式,发送方将数据报包发送到网络中,数据报包在网络中去寻找它的目的地。 TCP协议和UDP协议的联系和区别: TCP协议和UDP协议是传输层的两种协议。Socket是传输层供给应用层的编程接口

wireshark使用简介

只谈情不闲聊 提交于 2020-02-18 07:14:59
wireshark使用简介 wireshark界面简介 Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。可破解局域网内QQ、邮箱、msn、账号等的密码。 MENUS(菜单) 程序上方的8个菜单项用于对Wireshark进行配置: "File"(文件)打开或保存捕获的信息。 "Edit" (编辑)查找或标记封包。进行全局设置。 "View"(查看)设置Wireshark的视图。 "Go" (转到)跳转到捕获的数据。 "Capture"(捕获)设置捕捉过滤器并开始捕捉。 "Analyze"(分析)设置分析选项。 "Statistics" (统计)查看Wireshark的统计信息。 "Help" (帮助)查看本地或者在线支持。 SHORTCUTS(快捷方式) wireshark shortcuts 在菜单下面,是一些常用的快捷按钮。可以将鼠标指针移动到某个图标上以获得其功能说明。 DISPLAY FILTER(显示过滤器) wireshark display filter 显示过滤器用于查找捕捉记录中的内容。请不要将捕捉过滤器和显示过滤器的概念相混淆。 PACKET LIST PANE(封包列表)

TCP 连接建立分析

会有一股神秘感。 提交于 2020-02-17 15:18:37
tcp 三次握手与四次挥手 tcp 报文结构 tcp 是全双工的,即 client 向 server 发送信息的同时,server 也可以向 client 发送信息。 在同主机的两个 session 中分别执行以下命令 tcpdump -i lo -w - | tee ./hello.cap | tcpdump -r - telnet localhost 三次握手 字段含义:时间戳;从本地临时端口38644向telnet;发起连接标志S;client初始包序号3961004360;窗口大小43690字节;选项[最大报文段长度65495;允许TCP单独确认非连续的片段,用于告知真正丢失的包,只重传丢失的片段;时间戳选项;无操作字段;窗口扩大选项];数据段长度 第一行(第一次握手):client端主动发起第一次握手,同步位syn=1,同时初始化序列号seq num=J; 第二行(第二次握手):server端SYN=1,ACK=1,确认号ack num=J + 1,同时自己初始化序列号seq=K; 第三行(第三次握手):client收到确认报文,SYN不再置1,ACK=1,确认号ack num = K + 1; server端收到第三次握手的数据报文时,进入established状态,TCP连接建立。 四次挥手 第一行(第一次挥手):client发送结束报文字段,FIN = 1,seq

tcp/ip协议

情到浓时终转凉″ 提交于 2020-02-17 09:20:30
tcp/ip协议 TCP/IP(Transmission Control Protocol/Internet Protocol)是一种可靠的网络数据传输控制协议。定义了主机如何连入因特网以及数据如何在他们之间传输的标准。 三次握手协议 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。 TCP共有6个标志位,分别是: SYN(synchronous),建立联机。 ACK(acknowledgement),确认。 PSH(push),传输。 FIN(finish),结束。 RST(reset),重置。 URG(urgent),紧急。 (1)第一次握手:Client将标志位SYN(同步序列编号)(Synchronize Sequence Numbers)置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 (2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。 (3)第三次握手:Client收到确认后

计算机网络核心(1)

杀马特。学长 韩版系。学妹 提交于 2020-02-17 05:41:13
一、网络基础知识 1、OSI 开放式互联参考模型 当前市面上分别存在:四层、五层、七层协议,而国际标准化组织 ISO 制定的 OSI 七层协议模型,是业界提出来的概念性框架: 先自上而下,后自下而上处理数据头部 从应用层开始,都会对传输的数据头部进行处理,加上本层的一些信息,最终,由物理层通过以太网、电缆等介质,将数据解析成比特流,在网络中传输。 数据传输到目标地址后,并自底而上的将先前对应的头部解析分离出来,这个就是网络数据处理的流程。 2、TCP/IP OSI 是一个定义良好的协议规范机制,并有许多可选部分完成类似的任务。它定义了开放系统的层次结构、层次之间的相互关系、以及各层可包括的可能的任务,是作为一个框架来协调和组织各层所提供的服务。 但是 OSI 参考模型并没有提供一个可以实现的方法,而只是描述了一些概念,用来协调进程间通信标准的制定。所以,OSI 参考模型并不是一个标准,而是一个在自定标准时所使用的概念型框架。 实施的标准时 TCP/IP 四层架构参考模型,虽然 TCP/IP 协议并不完全符合 OSI 的七层参考模型,但我们依然可以将其理解为是对 OSI 的一种实现。 二、TCP的三次握手 1、TCP 报文头 1.1 Source Port 和 Destination Port 首先,Source Port 和 Destination Port

三次握手和四次挥手

ε祈祈猫儿з 提交于 2020-02-15 05:20:16
问题: 1.为什么需要TCP连接? 因为TCP连接管理这套机制是以不同五元组描述的通到分别管理的。 2.什么是连接? 抽象层面来说:就是五元组标识的唯一一条通信通道 OS层面来说:就是一个Connection对象,(描述五元组信息+各种管理信息,OS通过List/Map把Connection对象组织起来) 3.Socket和连接的关系?——从应用层代码角度理解 前置知识:理解什么是Socket(套接字) 套接字是OS提供的用于应用层和网络协议栈进行通信的一套标准接口,套接字上会绑定相应的连接,实现通信 代码:ServerSocket s=new ServerSocket(8888); 做了三件事: 1.新建一个Socket 2.绑定了本地IP+本地端口 3.listen(监听) 连接管理 (为什么要有连接管理?) ( 因为TCP的可靠性) 需要有建立连接的过程和销毁连接的过程 1.三次握手建立TCP连接 (1)从TCP协议栈的视角看 SYN:表示想建立连接,进行信息同步(初始序号-ISN的同步) ACK:确认应答,表示确认之前收到的segment (2)TCP的状态转移 (3)和应用层结合看 总结: 1.描述三次握手的过程? a)标志位:SYN+ACK b)状态转移 c)SN+ASN d)结合应用层 2.为什么是三次? a)为什么不是两次? c发SYN,s回ACK,s发SYN

Java 之 TCP 通信程序

一笑奈何 提交于 2020-02-14 00:22:43
一、TCP协议概述   TCP(Transmission Control Protocol,传输控制协议)被称作一种端对端协议。是一种面向连接的、可靠的、基于字节流的传输层的通信协议,可以连续传输大量的数据。   这是因为它为当一台计算机需要与另一台远程计算机连接时,TCP协议会采用“三次握手”方式让它们建立一个连接,用于发送和接收数据的虚拟链路。数据传输完毕TCP协议会采用“四次挥手”方式断开连接。   TCP协议负责收集这些信息包,并将其按适当的次序放好传送,在接收端收到后再将其正确的还原。TCP协议保证了数据包在传送中准确无误。TCP协议使用重发机制,当一个通信实体发送一个消息给另一个通信实体后,需要收到另一个通信实体确认信息,如果没有收到另一个通信实体确认信息,则会再次重复刚才发送的消息。   TCP 通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。   两端通信时步骤:      1、服务端程序,需要事先启动,等待客户端的连接;     2、客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。   在 Java 中,提供了两个类用于实现 TCP 通信程序:      1、 客户端 :java.net.Socket 类表示。创建 Socket 对象,向服务端发出连接请求,服务器响应请求

TCP/UDP协议

本秂侑毒 提交于 2020-02-14 00:17:20
文章目录 1.OSI网络七层模型 1.1各层的主要功能 低三层 承上启下作用层 高三层 2.传输控制协议TCP 2.1 TCP握手机制 2.1.1三次握手过程 Ⅰ.为什么需要三次握手,两次不行吗? Ⅱ.什么是半连接队列? Ⅲ.ISN(Initial Sequence Number)是固定的吗? Ⅳ:三次握手过程中可以携带数据吗? Ⅴ. SYN攻击是什么? 2.1.2 四次挥手过程 Ⅰ. 挥手为什么需要四次? Ⅱ.四次挥手释放连接时,等待2MSL的意义? Ⅲ.为什么TIME_WAIT状态需要经过2MSL才能返回到CLOSE状态? 3.用户数据报协议 UDP 3.1开发应用人员在UDP上构建应用时关注的点 3.2 UDP和TCP比较 3.3什么情况下会用到UDP? 4.Socket编程 1.OSI网络七层模型 为使不同计算机厂商的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。 分层的目的:为了让每一层的开发人员、系统设计不需要再关心整个的网络层次。比如说做网线或者光纤的厂商,只需要关心物理层就行。 1.1各层的主要功能 低三层 物理层:使原始的数据比特流能在物理介质上传输。 数据链路层:通过校验、确认、和反馈重发等手段,形成稳定的数据链路(01010101)。 网络层:进行路由选择和流量控制。(IP协议) 承上启下作用层 传输层

网络

与世无争的帅哥 提交于 2020-02-13 21:24:02
个人博客 http://www.milovetingting.cn 网络 前言 本文为学习Java相关知识所作笔记,参考以下资料: https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! 网络 7 层架构 7 层模型主要包括: 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。 它的主要作用是传输比特流(就是由 1、 0 转化为电流强弱来进行传输,到达目的地后在转化为1、 0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。 数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。 网络层:主要将从下层接收到的数据进行 IP 地址(例 192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。 传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如: TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据), UDP(用户数据报协议,与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段进行传输