当前位置: 澳门新濠3559 > 操作系统 > 正文

你不知道,传输控制协议/英特尔互联协议

时间:2019-11-08 15:11来源:操作系统
 学习Linux,就算是像小编我这样的小萌新,也知道OSI模型。什么?!你不知道!!!好吧,这篇秘籍拿走,不谢~~~ TCP/IP协议   Transmission Control Protocol /Internet Protocol 传输控制协议/英特

 学习Linux,就算是像小编我这样的小萌新,也知道OSI模型。什么?!你不知道!!! 好吧,这篇秘籍拿走,不谢~~~

TCP/IP协议

 

Transmission Control Protocol /Internet Protocol  传输控制协议/英特尔互联协议
TCP/IP是一个Protocol Stack,包括TCP、 IP、UDP、ICMP、RIP、TELNET、FTP、 SMTP、ARP等许多协议
最早发源于美国国防部(缩写DOD)的英特尔的前身ARPA网项目1983年1月1日,TCP/IP取代了旧的网络控制协议NCP,成为今天的互联网和局域网的基石和标准,由互联网工程任务组负责维护

一、两个协议

(1)OSI 协议模型(7层)国际协议    PDU:协议数据单元对等层次之间传递的数据单位

OSI协议(7层

国际协议

PDU

单位

功能

实例

7   应用层

application

message

为应用程序进程(例:mail、终端防伪)提供网络服务;提供用户访问界面

提供用户身份验证

HTTP

Telnet

6   表示层

presention

message

确保接受系统可以读出该数据

格式化数据;编码

构建数据、提供加密解密压缩解压缩

协商用于应用层的数据传输语法

ASCLL、EBCDIC

JPEG

5   会话层

session

消息

message

建立、管理和终止在应用程序之间的会话session

操作系统

应用读取

4   传输层

transport

数据网

segment

终端对终端;确保数据传输的可靠性

建立、维护和终止虚拟电路

通过错误检测和恢复

信息流控制来保障可靠性

TCP、UDP

3   网络层

network

数据包

packet/package

支持逻辑寻址和路径选择

路由选择

选择传递数据和路径选择

IP

2  数据链路层

data link

帧frame

MAC(物理)地址访问媒介、错误检测和修正

802.3/802.2

HDLC

1   物理层

physical

数据位

byte

二进制传输;为启动、维护和关闭物理链路定义了电器规范、机械规范、过程规范和功能规范

EIA/TIA-232

V.35

运作模型:

澳门新濠3559 1

 

(2)**TCP/IP 协议栈(4层)**,既是局域网又是互联网的默认主流协议

cat /etc/protocols  查询系统上存在的协议(linux)

 澳门新濠3559 2

 

(3)相同点

  两者都是以协议栈的概念为基础

  协议栈中的协议彼此相互独立

  下层对上层提供服务,每层都有区分上层类型的标签

不同点

  OSI是先有模型;TCP/IP是先有协议,后有模型

  OSI适用于各种协议栈;TCP/IP只适用于TCP/IP网络

  层次数量不同

(4)每层有自己的结构,下面会详解,下表是个简例

数据链路层    帧

Internet   IP协议

传输层    TCP协议

应用层

目标mac

地址

源 mac

地址

源IP

地址

目标IP

地址

源端口

目标端口

app

数据

date

 澳门新濠3559 3

 

 

共定义了四层

二、数据链路层 帧

(1)Ethernet Frame以太网帧,IEEE定了国际标准

 澳门新濠3559 4

(2)Ethernet Frame 以太网帧结构(EthernetII 和 802.3的区别)(数据链路层)

 以太网长度:72-1526(抓包为60-1514除去前8最后4字节)

                EthernetII

8

6

6

2

46-1500

4

序言

Preamble

目标物理

(mac)地址

源mac地址

Type

上层类型

Data (包含上层协议头部信息)

FCS  检查数据包故障

                IEEE 802.3

7

1

6

6

2

46-1500

4

序言

Preamble

S

O

F

目标物理

(mac)地址

源mac地址

Length

长度

Data (包含上层协议头部信息)

FCS  检查数据包故障

EthernetII 有标识Type上层文件类型,IEEE 802.3没有(存在问题)

 

(3)抓包实例

 澳门新濠3559 5

 

(4)mac地址(48位)   不同地方不同的意思,媒体访问控制media access control MAC

  48全为1(12个F):广播

 澳门新濠3559 6

 

 

和ISO参考模型的分层有对应关系 

三、传输层,TCP和UDP协议

(1)TCP可靠性  和  UDP高效性  区别

区别

TCP可靠性

UDP高效性

Connection Type

面向连接

connection-oriented

非面向连接

connectionless

序列化

Sequencing

yes

no

 

Uses

E-mail

File sharing

Downloading...

voice streaming

video streaming

 

(2)TCP

1.特性

  工作在传输层面向连接协议

  全双工协议

  半关闭(分手的时候)

  错误检查

  将数据打包成段,排序,序列号

  确认机制

  数据恢复,重传

  流量控制,滑动窗口

  拥塞控制,慢启动和拥塞避免算法(慢启动)

2.TCP包头(20固定[+40可选项])

 澳门新濠3559 7

① 源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16 位表示的,可推算计算机的端口个数为0-65535(2^16)个,服务器的端口固定的;客户端的端口随机的

cat /etc/services 查询常见服务器端口号,常见的端口号

http  80/tcp  https 443/tcp  ssh   22/tcp  ftp   21/tcp 文件传输协议  tftp  69/utp  smtp  25/tcp 邮件  

pops  110/tcp  dns   53/tcp/udp  dhcp  udp 67 68 自动获取IP  telnet  23/tcp 远程主机  mysql 3306/tcp 数据库  

oracle 1521/tcp  sql server 1433/tcp  smb 445 139 137 138/udp windows共享  snmp 161udp 监控管理

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

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

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

⑤ 标记位 :(下篇讲到三次握手、四次挥手中很重要)

  URG :表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer )只有当URG=1 时才有效,URG=0无效

  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报文段称为结束报文段

⑥ 窗口大小:表示现在充许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量

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

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

⑨ 选项部分:其最大长度可根据TCP 首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40 字节

常见选项:

  最大报文段长度:Maxium Segment Size ,MSS

  窗口扩大:Windows Scaling

  时间戳: Timestamps

 

3.TCP 协议PORT

传输层通过port号,确定应用层协议

IANA:互联网数字分配机构(负责域名,数字资源,协议分配)

  0-1023 :系统端口或特权端口( 仅管理员可用)  ,众所周知,永久的分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

  1024-49151 :用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用,1433/tcp(SqlServer) ,1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)

  49152-65535:动态端口或私有端口,客户端程序随机使用的端口

  cat /proc/sys/net/ipv4/ip_local_port_range 查询动态端口或私有端口范围(linux)

 

4.TCP 超时重传

异常网络状况下(开始出现超时或丢包),TCP 控制数据传输以保证其承诺的可靠服务

与TCP 超时重传相关的两个内核参数:

  /proc/sys/net/ipv4/tcp_retries1 ,指定在底层IP 接管之前TCP 最少执行的重传次数,默认值是3

  /proc/sys/net/ipv4/tcp_retries2 ,指定连接放弃前TCP最 最多可以执行的重传次数,默认值15 (一般对应13 ~30min)

 

5.TCP固定窗口:知道window size,sender固定发送n,receiver回复ACK n+1

    滑动窗口:不知道window size,例如sender发送4个,receiver回复ACK 3,代表只收到2个,window size=2,下次sender只发送2个

 

6.拥塞控制:TCP 为提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性

       慢启动、拥塞避免、快速重传、快速恢复

/proc/sys/net/ipv4/tcp_congestion_control 查看当前所使用的拥塞控制算法

 

(3)UDP特性

1.特征

  工作在传输层

  提供不可靠的网络访问

  非面向连接协议

  有限的错误检查

  传输性能高

  无数据恢复特性

2.包头

澳门新濠3559 8

 

 

TCP/IP 协议和OSI模型

四、Internet 层

Internet 层的协议:ICMP、ARP、RARP、IP 等协议

(1)ICMP协议, 在Internet相对较外层

① 用于在IP主机、路由器之间传递控制消息,多用于检查状态

② 经典命令:ping命令

③ ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。向目标主机长时间、连续、大量地发送ICMP数据包,会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命,例如 可以大量的ping一个地址。

  echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all   禁止ping,不回复别人的ping请求(默认是0)

④ 抓包工具查看时,8代表是发送、0代表是返回

 澳门新濠3559 9

 

(2)ARP 地址解析协议

① 根据IP地址,利用广播,请求网络上的所有主机,并接收返回消息,以此确定目标的物理mac地址。也就是:有IP地址,得到mac地址。

② 用途:重启,重启网络服务时,避免IP地址冲突;查询mac地址

③ ARP表  查询命令:ip neigh  /   arp -n

 澳门新濠3559 10

 

④ arp命令:

  arp -n   查看IP地址和mac地址的关系(linux),有动态、静态、永久三种关系

  arp -d   删出一条对应关系

  arp -s IP mac  手动加一条(永久)

  arping -I ensX IP地址   查看IP地址对应的mac地址

  arp -a   查看IP地址和mac地址的关系(windows)

⑤ 也可以被攻击,攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗

 

(3)RARP 反向ARP协议

  有mac地址,得到IP地址

例:无盘工作站(银行,确保数据安全)

 

(4)**IP协议**

1.特征

  运行于 OSI  网络层

  面向无连接的协议

  独立处理数据包

  分层编址

  尽力而为传输

  无数据恢复功能

2.包头

 澳门新濠3559 11

版本: 占4 位,IP  协议的版本目前的IP 协议版本号为4,Ipv4

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

③ 区分服务: 占8 位, 用来获得更好的服务, 在旧标准中叫做服务类型,但实际上一直未被使用过. 后改名为区分服务. 只有在使用区分服务(DiffServ) 时, 这个字段才起作用. 一般的情况下都不使用

④ 总长度: 占16 位, 指首部和数据之和的长度, 单位为字节, 因此数据报的为最大长度为 65535  字节,总长度必须不超过最大传送单元 MTU

⑤ 标识: 占16 位, 它是一个计数器, 通常,每发送一个报文,改值会加1,也用于数据包分片,在同一个包的若干分片中,该值是相同的

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

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

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

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

⑧ 生存时间: 占8 位, 记为TTL (Time To Live)  数据报在网络中可通过的路由器数的最大值,TTL  字段是由发送端初始设置一个8 bit 字段. 推荐的初始值由分配数字 RFC  指定, 当前值为64,发送 ICMP应答时经常把 TTL 设为最大值 255

linux 默认为64        windows 默认为128

  cat /proc/sys/net/ipv4/ip_default_ttl 查询本机的TTL

  echo 128 >  /proc/sys/net/ipv4/ip_default_ttl 修改自动ttl,伪装为windows

⑨ 协议: 占8 位, 指出此数据报携带的数据使用何种协议以便目的主机的IP 层将数据部分上交给哪个处理过程, 1表示为 ICMP协议, 2表示为 IGMP  协议, 6表示为 TCP 协议, 17表示为UDP协议

⑩ 首部检验和: 占16 位, 只检验数据报的首部不检验数据部分.这里不采用 CRC  检验码而采用简单的计算方法

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

 

3.在抓包后显示信息

 澳门新濠3559 12

 

 好了,感觉内容有点多哈,大家慢慢消化吧,如果有什么不太懂的,可以评论,大家一起探讨~~~ 这篇就到这里了。。。

澳门新濠3559 13

 

TCP/IP              OSI参考模型

应用层              应用层
                        表示层
                        会话层

传输层              传输层

internet层          网络层

数据链路层          数据链路层

物理层              物理层 

TCP特性

工作在传输层
面向连接协议
全双工协议
半关闭
错误检查
将数据打包成端,排序
确认机制
数据恢复重传
流量控制,滑动窗口
拥塞控制,慢启动和拥塞避免算法

TCP

源端口,目标端口:计算机上的进程要是和其他进程通信是通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过制定源端口和目标端口,就可以知道是那两个进程需要通信,源端口,目标端口是用16位表示的,可推算计算机端口个数为2^16个
序列号:表示本报文段所发送数据的第一个字节的编号,在TCP链接中所传送的字节节流的每一个字节都会按顺序编号,由于序列号有32位表示,所以每2^32个字节,都会出现序列号回绕,再次从0开始
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号,也就是告诉发送发:我希望你下一次发送的数据的第一个字节数据的编号是这个确认号
数据偏移: 表示TCP报文段的首部长度,共4位 由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文的长度到底有多长,他指出TCP报文段的数据起始处距离TCP报文段的起始处有多远 ,该字段单位是32位,4位二进最大表示15 所以数据飘逸也是TCP首部最大60字节 

TCP包头

  URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
    ACK:表示是否前面确认号字段是否有效。只有当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报文段称为结束报文段

序号和确认号和标记为

seq:序号:发送者的发的包的序号
ack:确认号:是接收者收到后返回的确认包

标记位:
URG:(紧急指针位)只有当URG=1时才有意义
ACK:(确认位)表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。
RST:重置位
SYN:同步位
FIN:结束位

TCP包头

窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量
校验和:提供额外的可靠性
紧急指针:标记紧急数据在数据字段中的位置
选项部分:其最大长度可根据TCP首部长度进行推算
常见选项:
    最大报文段长度:Maxium Segment Size,MSS
    窗口扩大:Windows Scaling
    时间戳: Timestamps 

TCP三次握手

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手:

三次握手过程

第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.

TCP四次挥手

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。
客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

四次挥手过程

step1:第一次挥手
首先,客户端发送一个FIN,用来关闭客户端到服务器的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u。

step2:第二次挥手
服务器收到这个FIN,它发送一个ACK,确认ack为收到的序号加一。

step3:第三次挥手
关闭服务器到客户端的连接,发送一个FIN给客户端。

step4:第四次挥手
客户端收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加一。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

客户端发送FIN后,进入终止等待状态,服务器收到客户端连接释放报文段后,就立即给客户端发送确认,服务器就进入CLOSE_WAIT状态,
此时TCP服务器进程就通知高层应用进程,因而从客户端到服务器的连接就释放了。
此时是“半关闭状态”,即客户端不可以发送给服务器,服务器可以发送给客户端。
此时,如果服务器没有数据报发送给客户端,其应用程序就通知TCP释放连接,然后发送给客户端连接释放数据报,并等待确认。
客户端发送确认后,进入TIME_WAIT状态,但是此时TCP连接还没有释放,然后经过等待计时器设置的2MSL后,才进入到CLOSE状态。

为什么建立连接协议是三次握手,而关闭连接却是四次呢

这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的连接请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。

但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;
但未必你所有的数据都全部发送给对方了,所以你可能未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,
所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

为什么不能用两次握手进行连接

我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。

现在把三次握手改成仅需要两次握手,死锁是可能发生的。
作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。
按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。
可是,C在S的应答分组在传输中被丢失的情况下,将不知道S 是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。
在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分 组,只等待连接确认应答分组。
而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。 

为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。
所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。

TCP超时重传

异常网络状态下(开始出现超时或丢包),TCP控制数据传输以保证其承若的可靠服务
TCP服务必须能够重传超时时间内未收到的TCP报文段
为此,TCP模块为每一个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动
与TCP超时重传相关的两个内核参数:
澳门新濠3559,/proc/sys/net/ipv4/tcp_retries1:最少执行的重传次数
proc/sys/net/ipv4/tcp_retries2:做多执行的重传次数默认值15

TCP协议和UDP协议的区别是什么

    TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后也要结束连接。
    而UDP是无连接的 

    TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性,
    但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序送到。

CP协议PORT

传��层通过port号,确认应用层协议
tcp :传输控制协议,面向连接协议:通信前需要建立虚拟链路:结束后拆除链路  0-65535
udp:无连接的协议  0-65535
IANA:互联网数字分配机构(负责域名;数字资源;协议分配)
    0-1023:系统端口或特权端口(仅管理员可用)总所周知,永久的分配个固定 的系统应用使用  22(ssh)80(http) 443(https)
    1024-49125:    用户端口或注册端口但要求不严格
    49152-65535:动态端口或私有端口,客户端程序随机使用端口
    其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

Internet协议特征

运行与OSI网络层
面向无连接的协议
独立处理数据包
分层编址
尽力而为传输
无数据恢复功能

单播多播广播

    处地址类别外,还可以根据传输的信息特征将IP地址分为单播,多播,广播。主机使用IP地址进行一对一(单播),一对多(多播),或一对所有(广播)的通信
            单播:单播地址是IP网络中最常见的。包含单播地址的分组发送给特定主机,
            多播:多播地址让原设备能够将元分组发送给一组设备
            广播:广播分组的目标IP地址的主机部分全为1 ,这以为着本地网络(广播域)中的所有主机都将接收并查看该分组

ARP地址解析协议:

IP PDU报头

版本:占4位,指IP协议的版本目前的IP协议版本号为4
首部长度:占4位,可表示的最大数值是15个单位,一个单位为四个字节,因此IP的首部长度的最大数值是60个字节
区分服务:占8位用来获得更好的服务,在旧标准中叫做服务类型,到实际上未被使用过,后改名为区分服务,只有在使用区分服务时,这个字段才起作用,一般的情况下都不使用
总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节,总长度不能超过最大传输单元MTU
标识:占16位它是一个计数器,通常,没发送一个只有当报文,该值会加1 ,也用于数据包分片,自同一个包的若干分片中,该值是相同的
标志:占3位,目前只有后两位有意义
DF:中间的一位,只有当DF=1是才允许分片。
MF:最高位,MF=1表示后面还有分片,表示最后一个分片
片偏移:占12位,指较长的分组 在分片后,该分片在原分组中的相对位置,片偏移以8个字节为偏移单位
生存时间:占8位,即为TTL数据报在网络中可通过的路由器的最大值,TTL字段是有发送端初始设置一个8bit字节,推荐的初始值由分配数字RFC指定,当前值为64 发送ICMP回显应答是=时经常把TTL设为最大值255
协议:占8位,指出此数据宝携带数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程,1表示ICMP协议,2表示为IGMP协议 ,6表示TCP协议,17表示为UDP协议
首部检验和:占16位,只验证数据报的首部不检验数据部分,这里不采用CRC检验码而采用简单的计算方法
原地址和目标地址:都各自占4个字节,分别记录原地址和目的地址

IP地址

他们可唯一标识IP网络中的每一台设备
每台主机(计算机,网络设备,外围设备)必须具有唯一的地址
IP地址有两部分组成:
    标识网络
    每个网络分配一个ID
主机ID:
    标识单个主机
    有组织非配给各设备

IP地址分类

A类:
    0 000 0000 - 0111 1111:1-127
    网络数:126,127
    每个网络中的主机数:2^24-2
    默认子网掩码:255.0.0.0
    私网地址:10.0.0.0
B类:
    10 00 0000 - 10 11 1111: 128-191
    网络数:2^14
    每个网络中的主机数:2^16 -2
    默认子网掩码:255.255.0.0
    私网地址:172.16.0.0-172.31.0.0
C类:
    110 0 0000 -110 1 1111:192-223
    网络数:2^21
    每个网络中的主机数:2^8-2
    默认子网掩码:255,255,255.0
D类:组播
E类:240-255

Linux公社的RSS地址:

本文永久更新链接地址

澳门新濠3559 14

编辑:操作系统 本文来源:你不知道,传输控制协议/英特尔互联协议

关键词: