HCIA作业1:TCP协议笔记整理

基本概念

为什么会有TCP/IP协议

        在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。

        但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP就是为此而生。TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。

TCP/IP协议栈

OSI---- 开放式系统互联模型

        TCP/IP标准模型是四层。而对等模型是五层。

OSI 参考模型
  • 应用层-----用来接收用户数据,人机交互接口
  • 表示层-----将逻辑语言转换为机器语言
  • 会话层-----针对传输的每一种数据建立一条独立的通道。数据的整合
控制层面 --- 上三层 ---- 不会对数据本身进行修改
数据层面 --- 下四层 ---- 对数据进行加工
  • 传输层-----区分流量信息,定义数据传输方式。TCP协议UDP协议
  • 网络层-----通过IP地址进行逻辑寻址,IP协议
  • 数据链路层-----逻辑链路控制层(LLC);介质访问控制层(MAC
  • 物理层----定义物理特性

一些基本的常识

  • 互联网地址(ip地址)

网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址)。现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,我们常用的是B类地址。具体的分类请参考其他文档。需要注意的是IP地址是网络号+主机号的组合,这非常重要。

  • 域名系统

域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。

  •   RFC

RFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。

  • 端口号(port)

注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。

  • 应用编程接口

现在常用的编程接口有socket和TLI。而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有多大的贡献。

物理层

代表设备:中继器、集线器
传输介质
  • 同轴电缆
  • 双绞线
屏蔽双绞线( STP )、非屏蔽双绞线( UTP
  • 光纤
双工模式
  • 单工
  • 半双工
  • 全双工
同一物理链路连接的设备所具备的双工模式必须相同 。市面上大部分设备都是全双工模式。

数据链路层

数据链路层有三个目的:

  • 为IP模块发送和 接收IP数据报。
  • 为ARP模块发送ARP请求和接收ARP应答。
  • 为RARP发送RARP请 求和接收RARP应答

(ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议)

主要介绍以太网和IEEE 802封装。

首先,以太网是私有技术,IEEE 802.3标准是公有技术。

二层地址 ---MAC 地址 ---48bit--- 写法减号分十六进制
  • 24 位:表示厂商 ID ;由 IEEE 组织进行全球分配
    • 24 位:表示产品 ID
      数据帧
      由网络层产生的数据包,被下发给数据链路层后,分别会在数据包的头部和尾部添加上封装信息。封装后的数据被称为数据帧。
      • 以太网Ⅱ

      • IEEE802.3标准

      数据帧发送方式

      • 单播
      • 组播
      • 广播

      网络层

      IPv4 地址的 有类分址
      A\B\C 三类被称为单播地址,如果源和目的均为单播地址的数据包,则被称为是单播报文。
      特殊地址
      0.0.0.0----> 代表没有 IP 或者代表所有设备
      127.X.X.X---> 本地测试地址 ---127.0.0.1 (代表自身)
      网段地址 ---> 主机位全 0 的地址 --- 网络地址
              192.168.1.0/24
      广播地址 --->255.255.255.255
              定向广播地址--->192.168.1.255---> 主机位全 1
      私有地址
      A:10.0.0.0/8--10.0.0.0-10.255.255.255
      B:172.16.0.0---172.31.255.255--- 16 B 类地址段
      C:192.168.0.0-192.168.255.255--- 256 C 类地址段
      版本 -- 恒定为 4
      生存时间 ---Time to Live---TTL 数值 --> 这个数据包可以在网络中存活的时间
              每经过一台路由器,TTL 数值减 1 ,当某台路由器在收到 IP 报文后,发现 TTL 数值为 0 ,则直接丢弃该报
      文。
      协议字段 --- 指代上层协议(可以是传输层、也可以是应用层)
              TCP---6
              UDP---17
      标记字段 --- 用于数据包的排序以及判断是否完整接收数据信息。
      标志位 ---3bit ,恒定 0 DF -- 该标记位为 1 ,则代表该报文没有被分片。 MF -- 0 则代表是最后一个报 文,为1 则代表后续还有其他报文。
      片偏移 -- 用来记录每一个分片的原始位置
      IP 分片
      MTU--- 最大传输单元 ---- 在以太网当中为 1500 字节 ---- 设备双方通过协商得出 MTU 数值后,则在链路中 传输的报文的最大字节为MTU 数值。

      传输层

      端口号 --- 用来区分计算机上不同应用程序的;标识不同的进程。
      端口号总共是 2 字节大小。
      0-65535--->1-65535
      静态端口(著名端口) ---1-1023---- 网络中常用协议的固定端口
      动态端口 ----1024-65535---> 某些协议或程序自行生成的端口
      TCP 协议 ----- 传输控制协议
         一种 面向连接 可靠 传输协议。
         
          TCP 协议建立的连接是双向连接
          面向连接:在数据传输之前,收发双方需要预先建立一条逻辑通路
          无面向连接。
      序列号                                                                               
      确认序列号                                                                        
                                                                                                
      6 位标志位                                                                          
      SYN--- 同步位 --- 是在 TCP 三次握手建立通道时的标记       
      ACK--- 确认位 --- 当该标记位置为 1 时,确认序列号有意义 
      FIN--- 代表释放 TCP 连接                                                    
      TCP 分段:因为 IP 分片后, TCP 协议无法保证数据的可靠性传输;故而使用 TCP 协议进行封装的文件不允
      许进行 IP 分片,而又因为 MTU 存在,需要将大文件分为小文件,该操作由 TCP 协议完成。
          MSS--- 最大传输段 ===MTU-IP 头部 -TCP 头部
      TCP 协议中,每一个报文都需要有序列号信息
      可靠性
      • 确认机制----每收到一个TCP数据段,都需要发送一次确认报文。
      • 流控机制(滑动窗口机制):可以通过调节窗口大小(Windows)来对流量进行控制
      • 重传机制----超时重传,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。
      • 排序机制----传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱, 需要根据序列号字段进行重新排序。

      TCP 连接建立过程中要解决的三个问题

      1. 要使每一方能够确知对方的存在
      2. 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)。
      3. 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
      • TCP 连接的建立采用客户服务器方式。
      • 主动发起连接建立的应用进程叫做客户
      • 被动等待连接建立的应用进程叫做服务器

      TCP的连接建立
      • TCP建立连接的过程叫做握手
      • 采用三次握手:在客户和服务器之间交换三个TCP报文段,以防止已失效的连接请求报文段突然又传送到了,因而产生TCP连接建立错误
      TCP的连接释放
      • TCP连接释放过程比较复杂。
      • 数据传输结束后,通信的双方都可释放连接
      • TCP连接释放过程是四次挥手
      MSL---120S ,指一个数据包在网络中传递的最大时间。
  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值