TCP协议详解

TCP协议详解。

    I,TCP数据段报文解释捕获.PNG

TCP协议详解

1,tcp数据段头部20(固定)+40(可变)字节构成,此数据由报头偏移位构成,计算单位为四个字节
表示TCP报文段的首部长度,共4位,由于TCP首部包含一
个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指
出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字
段的单位是32位(即4个字节为计算单位), 4位二进制最大表示15,
所以数据偏移也就是TCP首部最大60字节

2,源始port16位,范围是0-65535


TCP协议详解

        代理服务器常用以下端口:
(1). HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080
(2). SOCKS代理协议服务器常用端口号:1080
(3). FTP(文件传输)协议代理服务器常用端口号:21
(4). Telnet(远程登录)协议代理服务器常用端口:23
HTTP服务器,默认的端口号为80/tcp(木马Executor开放此端口);
HTTPS(securely transferring web pages)服务器,默认的端口号为443/tcp 443/udp;
Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口);
FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade 
Runner所开放的端口);
TFTP(Trivial File Transfer Protocol ),默认的端口号为69/udp;
SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;
SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(木马Antigen、Email
Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口);
POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp;
WebLogic,默认的端口号为7001;
Webshpere应用程序,默认的端口号为9080;
webshpere管理工具,默认的端口号为9090;
JBOSS,默认的端口号为8080;
TOMCAT,默认的端口号为8080;
WIN2003远程登陆,默认的端口号为3389;
Symantec AV/Filter for MSE ,默认端口号为 8081;
Oracle 数据库,默认的端口号为1521;
ORACLE EMCTL,默认的端口号为1158;
Oracle XDB( XML 数据库),默认的端口号为8080;
Oracle XDB FTP服务,默认的端口号为2100;
MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp;
MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp;
QQ,默认的端口号为1080/udp
3,数据序号32位,TCP为发送的每一个字节都编一个号码,这里存储当前数据包数据第一个字节的序号,对应于wireshark(Seq)
    确认序号32位,为了安全,TCP告诉接受者希望他下次接到数据包的第一个字节的序号。对应于wireshark(Ack)
4,确认比特ACK—仅仅有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效
正常通信,ACK号除了三次握手时,第一二次握手不带ACK位,其余正常通信过程都应带有ACK位。
同步比特SYN—同步比特SYN置为1,就表示这是一个连接请求或连接接受报文,
只有三次握手前两次才会使用。
    复位比特RST(Reset) —当RST=1时,表明TCP连接中出现严重差错(如因为主机崩溃或其它原因),必须释放连接,然后再又一次建立运输连接
    终止比特FIN(FINal)—用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完成,并要求释放运输连接
5,窗体字段16位,窗体字段用来控制对方发送的数据量,单位为字节。TCP连接的一端依据设置的缓存空间大小确定自己的接收窗体大小,然后通知对方以确定对方的发送窗体的上限。
6,可选选项24位     最大报文段长度: Maxium Segment Size, MSS
     窗口扩大: Windows Scaling
     时间戳: Timestamps
II,TCP三次握手和四次握手
TCP协议详解
三次握手.PNG
TCP过程.PNG
四次握手.PNG
三次握手:
   第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;
   第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
   第三次握手:客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。
四次挥手:
    第一次分手:主机1(可以使客户端,也可以是服务器端),设置Sequence Number和Acknowledgment Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;
   第二次分手:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;
   第三次分手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;
   第四次分手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。
III,TCP有限状态机
 CLOSED 没有任何连接状态
 LISTEN 侦听状态,等待来自远方TCP端口的连接请求
 SYN-SENT 在发送连接请求后,等待对方确认
 SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
 ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
 LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认

原创文章,作者:919022966,如若转载,请注明出处:http://www.178linux.com/78578

(0)
919022966919022966
上一篇 2017-06-26
下一篇 2017-06-26

相关推荐

  • grep命令

    grep命令:grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来;grep搜索的结果被送到屏幕,不影响原文件内容。Unix的grep家族包括grep、egrep和fgrep…

    Linux干货 2016-08-08
  • 硬链接和软链接的区别

                        硬链接和软链接的区别     硬链接: 1.创建命令:ln或link 2.同一文…

    Linux干货 2016-12-05
  • N25_第二周作业_leon

    第二周博客作业_leon 1.       Linux上的文件管理类命令有哪些?其常用的使用方法及其相关示例演示 常用文件管理类命令有: mkdir、touch、rmdir、cp、rm、mv   mkdir—-创建目录 -m  直接设置权限(非默认权限) -v&nbs…

    Linux干货 2016-12-23
  • bash功能特性五 重定向和管道

    一、管道     使用“|”符号来实现管道功能;管道可以实现在一行中处理使用管道符号连接的多个命令,后面的命令使用前面命令的输出结果做为处理对象。 二、数据流重定向     数据输入和输出的类型:         标准输入(std…

    Linux干货 2015-04-21
  • 浅谈Openssl与私有CA搭建

        随着网络技术的发展、internet的全球化,信息共享程度被进一步提高,各种基于互联网的应用如电子政务、电子商务日益增多并愈加被人们工作和生活依赖。但是,由于互联网的开放性和通用性,网络上的信息是对所有人公开的,这就使网络上的数据传输过程中存在被窃听、篡改等安全隐患,并极有可能给用户带来不可估量的损失。为此,各种保证数据在互联网上…

    Linux干货 2015-06-04
  • Btrfs文件系统的管理和应用

        Btrfs(我们称之为Butter FS或者B-tree FS)被称为新一代的linux文件系统。一直以来,EXT文件系统以其卓越的稳定性成为linux标准的文件系统。但近年来,EXT3暴露出一些扩展性的问题(如单一文件大小限制、总文件系统大小限制等),于是便催生了EXT4。但同时,Btrfs向人们展现出诸多优…

    Linux干货 2016-02-14