TCP/IP卷一 学习笔记

     计算机网络体系结构分层中最出名当为OSI七层模型和TCP/IP四层模型。

     OSI七层模型从下到上依次为: 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

     TCP/IP四层模型从下到上依次为:数据链路层、网络层、传输层和应用层。

 

     世界各地的计算机运行不同的操作系统,它们通过TCP/IP协议相互通信。下面从下到上对各层协议进行总结。

     一、  数据链路层

     1、 数据链路层主要传输3种数据,IP数据包,ARP请求/应答,RARP请求/应答。数据被封装为MAC帧,MAC帧有两种封装格式:以太网和IEEE 802,目前主流的是采用以太网封装格式,主要字段如下:

    (1)目的地址

    (2)原地址

    (3)类型:该字段的含义是承载的是哪种数据,包括IP数据包,ARP请求/应答,RARP请求/应答

    (4)数据:有效数据大小是46-1500字节

     (5)CRC校验 

     2、  ARP

     ARP称为地址解析协议,主要的作用是把IP地址映射为MAC地址,MAC地址为48位,可以用12个16进制数表示,每块网卡的MAC地址是唯一的。在一个局域网中,可以根据MAC地址来通信,主机A发送数据给主机B时,首先会查询自己的ARP高速缓存(主要存放的是IP地址到MAC地址的映射表,每隔20分钟更新一次),如果在高速缓存中没有找到主机B的MAC地址,主机A就会广播ARP请求,局域网内的所有主机收到ARP请求后,就会查看请求中的IP地址是否是自己的,如果是,就会把自己的MAC地址发送给主机A,否则丢弃该请求。主机B收到ARP请求后,就会把自己的IP地址和MAC地址发送ARP应答给主机A。主机A收到该应答后,就会更新自己的ARP高速缓存,然后在MAC帧中把目的地址填充为主机B的MAC地址,再广播该MAC数据帧。 局域网内的所有主机收到后,就查看收到的目的地址是否是自己的MAC地址,如果一致就接收数据,否则丢弃。

      3 、ARP代理

     当ARP请求需要通过路由器发送时,就称为ARP代理

     4、 免费ARP

     它是指主机发送ARP请求查询自己的IP地址

     5 、RARP

     RARP称为逆向地址解析协议,即把MAC地址映射为IP地址

     二、 网络层

    网络层主要包括IP,ICMP,IGMP等协议。

    1、  IP协议

    IP协议是整个TCP/IP协议栈的最核心的协议之一,它提供不可靠的无连接的数据报传输服务。不可靠是指它不能保证数据一定能够达到接收端,无连接是指它不维护后续数据报的状态信息。对于IP数据报的格式,挨个解释各个字段是教科书的方式,这里我只关心3个字段,源地址,目的地址和TTL字段。TTL字段是指IP数据包能够穿过的路由器个数,每通过一个路由器,TTL值就会减一,直到为0被丢弃。

    网络中每个设备都有一个IP地址,IP地址分为5类,各类地址如下:

    A 类  0.0.0.0 -  127.255.255.255

    B类   128.0.0.0 - 191.255.255.255

    C类  192.0.0.0 - 223.255.255.255

    D类   224.0.0.0 - 239.255.255.255

    E类  240.0.0.0 - 255.255.255.255

    从第1个十进制数就可以知道是哪类IP地址。IP地址被分为网络号加上主机号, 比如A类地址,网络号占8位,主机号占24位,这样在A类地址中就可以存放很多主机,实际上又用不了这么多的主机,造成了资源的浪费,为了解决这个问题,引入了子网的概念,即把主机号分为子网号和主机号两部分,通过子网掩码和IP地址进行与运算,就可以得到网络号。

    2、ICMP协议

    ICMP称为网络控制报文协议,它分为两类报文:查询报文和差错报文。当主机不可达或者分组产生错误,接收端就会发送差错报文给发送端。著名的ping、traceroute就使用了ICMP协议。ping程序通过发送ICMP回显报文给目标主机,等待返回ICMP回显应答。traceroute程序使用ICMP报文和TTL字段来获得源主机到目标主机的路由。

   3、 IGMP协议

     IGMP称为网络组管理协议

   

    三、 传输层

     1、 UDP协议

       UDP称为用户数据报协议,它提供的是无连接的不可靠的服务。

     2 、TCP协议

      TCP协议称为传输控制协议,也是TCP/IP协议族中最重要的协议。TCP提供的是面向连接的,可靠的字节流服务。面向连接是指TCP通信的双方在发送数据之前要建立连接,通过三次握手建立连接,四次握手释放连接。TCP通过超时重传,丢弃重复数据,对失序数据进行重新排列成有序数据等提供可靠的服务。

     3、 TCP连接建立和释放

      连接建立:三次握手

    (1) 客户端发送SYN段给服务器

    (2) 服务器发回包含服务器初始序号的SYN报文段作为应答,同时,将确认序号设置为客户的初始序号加1,因为一个SYN将占用一个序号

    (3) 客户将确认序号设置为服务器ISN加1,用来对服务器的SYN报文段进行确认

    释放连接:四次握手

     (1)客户端发送一个FIN给服务器,请求关闭客户端到服务器方向上的数据传输

     (2)服务器发回一个ACK,确认序号为收到的序号加1,因为一个FIN占用一个序号

     (3)服务器发送一个FIN给客户端,请求关闭服务器到客户端方向上的数据传输

     (4)客户端发回一个ACK,确认序号为收到的序号加1

       4、 最大报文段长度

       MSS表示TCP能够发送的最大报文长度,在连接建立时出现在SYN报文段中,用来相互通知对方自己期望接收的数据长度

     5、 TCP状态跃迁图

     6、 同时打开

     7、 同时关闭

  

     

 

   

 

 

     

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值