TCP/IP笔记一(TCP基础概念)

一、网络通信模型
      网络体系结构指的是网络的分层结构以及每层使用的协议的集合,其中最著名的是OSI协议模型和TCP/IP协议模型。
      OSI模型,即开放式通信系统互联参考模型,是国际标准化组织提出来的一个试图使各种计算机或者通讯系统在世界范围内互联为网络的标准框架。(它只是一个标准化模型,过于复杂,现实中并没有使用),分为7个层次:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
    TCP/IP模型是一组用于实现网络互联的通讯协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分为四个层次,他们分别是:网络访问层、网际互连层、传输层和应用层。

OSI七层模型                         功能             对应网络协议     TCP/IP协议四层模型
应用层各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的工作。HTTP,HTTPS,FTP,POP3、SMTP          应用层
表示层它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。表示层的具体功能如下:Telnet,Rlogin,SNMP,Gopher
会话层负责在网络中的两节点建立,维持和终止通讯,在这一层协议中,可以解决节点连接的协调和管理问题。包括通讯连接的建立,保持会话过程通讯连接的畅通,决定通讯是否被中断,以及通讯中断时从何处重新发送。SMP,DNS
传输层定义一些传输数据的协议和端口。传输协议同时进行流量控制,或是基于接收方可接受数据的快慢程度规定适当的传输速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。TCP,UDP         传输层
网络层将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到到接收方,网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B 的最佳路径。IP, ICMP, ARP,RARP,AKP,UUCP        网络层
数据链路层它控制网络层与物理层之间的通信,确保在不可靠的物理线路上进行可靠的传输。从网络层接收到的数据被分割成特定的可被物理层传输的帧,帧中包括原始数据、源地址、目的地址以及纠错和控制信息等。FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,帧中继     数据链路层
物理层定义物理设备的标准,主要对物理连接方式,电气特性,机械特性等制定统一标准,传输比特流,因此最小的传输单位——位(比特流)IEEE 802.1A, IEEE 802.2到IEEE 802.      物理层


    
    
    
    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二、数据封装过程

三、TCP包头分析

           TCP数据被封装在一个IP数据报中,如下图所示

               IP首部                TCP首部              TCP数据

 

 

      TCP首部的数据格式,通常为20个字节:

源端口号和目的端口号,各为16个字节,每个TCP段都包含源端和目的端的端口号,用于寻找发送端和接收端应用进程,这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接;
序列号,32个字节,用来标识从TCP发送端向TCP接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP用序列号对每个字节进行计数。
确认号,32个字节,客户端和服务器端都可以发送,Ack=Seq+1;
URG,1个字节,紧急指针(urgent pointer)有效。

ACK,1个字节,确认序号有效。

PSH,1个字节,接收方应该尽快将这个报文段交给应用层。

RST,1个字节,重建连接。

SYN,1个字节, 同步序号用来发送一个连接。

FIN,1个字节,发送端完成发送任务。
首部长度,4个字节,用于指示数据起始位置。由于TCP包头中可选项的长度可变,因此整个包头的长度不固定。如果没有附加字段,则TCP数据包基本长度为20字节。
窗口,2个字节,表示源端主机在请求接收端等待确认之前需要接收的字节数。它用于流量控制,窗口大小根据网络拥塞情况和i资源可用性增减。
校验位:16位。用于检查TCP数据包头和数据的一致性。
紧急指针:16位。当URG码有效时指向紧急数据字节。
可选项:存在时表示TCP包头后还有另外的4字节数据。TCP常用的选项为最大数据包(并非整个TCP报文)MSS。每一个TCP段都包含一个固定的20字节的段头。TCP段头由20字节固定头和一些可选项组成。实际数据部分最多可以有65495(65535-20-20=65495)字节。

四、IP包头分析

4位版本字段:表示IP的版本号,如果是0100表示IPv4,如果是0110表示IPv6。
4位首部长度字段:表示IP首部的总长度,其中包括选项字段(如果有)。该字段的表示长度单位为32bit(4 bytes), 因此首部长  度最大为15(1111)*32bit=60bytes。在没有选项时,该字段的值为5,表示普通的IP包头长度为20bytes。
8位服务类型(TOS)字段:前3bit表示该字段优先权(现在已经忽略该字段),随后4bit表示服务类型,按顺序分别表示 最小时延、  最大吞吐量、最高可靠性、最小费用四种,这个4个bit中最多只能有1个bit置位,如果全为0。则表示一般服务。最后1个 bit为未用位,必须置为0。
16位总长度(字节数)字段:表示整个IP数据报的长度,以字节为单位,最大长度为65535bytes。
16位标识字段:该标识字段唯一的标识主机发送的每一份数据报,由主机生成具有唯一性,通常每发送一份报文该值加1。 该值   在数据包分片时,会复制到每一个片中,所以在重组分片包时会观察该值,把该值相同的分片收集到一起重组。
3位标志字段:字段每一位都有特定的含义,该字段主要用来分片和重组。第1个bit为保留位(Reserved Bit),一般置位0。第2   个bit为不分片位(Don’t Fragment),该位在置1时表示不分片。第3个bit为更多片位(More Fragment),该位表示后面是否还有更多的分片,置位1时表示后面还有,所以除了最后一片报文,其他分片报文该位全部置1。
13位片偏移字段:13比特的片偏移字段表示分片时,每一个分片的数据字段偏移原始数据报开始处的位置。
8位生存时间(TTL)字段:8bit的生存时间字段表示该IP数据包可以经过的路由器的最大数量。它指定了数据报的生存时间。
8位协议字段:8bit的协议字段表示在IP上层承载的是什么协议。比如:0x01表示ICMP协议、0x06表示TCP协议、0x11表示UDP  协议等。
16位首部校验和字段:该字段用来在接收端校验收到的报文是否正确,该字段只对IP首部计算校验和,不包括后面的数据字段。
32位源IP地址字段:发送端的IP地址。
32位目的IP地址字段:接收端的IP地址。
选项字段:一般不使用该字段,该字段的值以32bit为单位,不足时以0补充。
数据字段:存放应用数据。
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值