TCP/IP详解笔记(2)——IP:网际协议

1.简介

IP协议是TCP/IP协议族中最核心的协议。所有TCP、UDP、ICMP和IGMP都以IP数据报格式传输。

IP协议有如下两个特点

  • 不可靠: 不保证数据报能成功到达,可靠要求只能用由上层提供(例如TCP)。
  • 无连接: 简单来说,就是一次发送一个,每个数据报相互独立,因此不保证顺序。

2. IP首部

IP首部一般为20字节,这里贴出来并只讲核心字段。

在这里插入图片描述

  • 4位版本号: 目前是4,因此IP也称作IPv4,当然目前已经在普及IPv6的使用,IPv4会逐渐被IPv6取代。
  • 首部长度: 指首部占32bit字的数目,一般的IP数据报的这个值就是5,由上图所示。
  • 总长度字段: 指整个IP数据报的长度,该字段为16bit,因此IP数据报最长可达65535字节。这个字段很重要,因为某些链路需要填充数据达到最小长度,因此需要知道总长度来判断内容。
  • TTL(time-to-live): 生存时间字段设置了数据报可以经过的最多路由器数。初始值由源主机设置(一般为32或64),每当经过一个路由器就减1,当减到0时,数据报丢弃并发送ICMP通知源主机。

3. IP路由选择

如果源主机可以直接找到目的主机,则直接发送,否则源主机将数据报发送至默认路由器上。

IP层在内存会有一个路由表,发送数据报时会搜索该表,如果

  • 目的主机是自身: 根据协议字段送至指定模块处理,
  • 否则: 如果自身有路由器功能则继续转发,否则丢弃。

路由表会有如下信息(注:网络地址可理解成一堆划分出来的子网共用一个对外的公共地址,具体指IP地址和子网掩码运算的公共地址,后面会讲。

  • 目的IP地址: 可以是一个完整的主机地址,也可以是网络地址。
  • 下一跳路由器的IP地址,或有直连的网络地址
  • 标志:
    第一个标志指明目的IP是网络地址还是主机地址
    第二个标志指明下一站是路由器还是一个直连的接口
  • 为数据报传输指定一个网络接口

简单来说IP层传输并不知道整条线路是怎样的,它只是不断转发而已,直到某个路由器找到了目的地址。

4. 子网寻址

IP地址由网络号和主机号组成,网络号决定了地址类型,主机号决定具体地址,而子网编址要求主机号再分成子网号和主机号

子网的出现原因是A类地址和B类地址分配太多空间。
以B类为例,可以按照下图划分子网。
在这里插入图片描述
这样划分可以缩小路由表规模,其他主机如果想要发送数据到某一个具体到主机号的子网,它依然要指定具体的IP,但是路线上的路由器只需要存储到子网号的地址即可,这就意味着一个子网号代表了它划分的一堆子网去接入Internet。

5. 子网掩码

上面的寻址有一个问题,就是我只知道目的IP,而不知道它划分的子网具体到几位,这时候就需要子网掩码进行计算。

子网掩码一般是32bit的值,为1的bit留给网络号和子网号,为0的bit留给主机号。
在这里插入图片描述
求子网号的运算方式是:子网掩码和目的IP按位与

以第一种子网掩码为例,假如我有一个主机地址是140.252.1.1,则显然按位与的结果就是140.252.1.0,这个就是计算出来的子网号。

这里看出来子网掩码有一个特点,因为网络号和子网号都在最前,所以子网掩码一定是前n位为1,剩余后32-n位为0,所以我们的IP地址可以写成140.252.1.1/24,意味着前24位为1,简洁易懂。

6. ifconfig&netstat

这两个命令应该都不陌生,ifconfig可以查看本机的IP和网络接口的一些信息,netstat常用来查看端口占用以及其他网络信息。

ifconfig

这里给出书里的一个ifconfig -a的例子
在这里插入图片描述
这里可以看到不同接口的IP地址,选项(broadcast为广播地址),目前大多数的局域网都是以太网,所以我们使用命令会看到eth0以太接口(现在服务器基本都支持ipv4和ipv6,所以我们除了inet还会看到inet6),和一个lo的环回接口。

netstat

我们常用的查看端口命令netstat -anp

  • -a: 显示所有连线中的socket
  • -n: 直接使用IP地址,而不通过域名服务器
  • -p: 显示正在使用Socket的程序识别码和程序名称

还有其他很多参数可以看到网络使用情况,上节链路层也有用到这个命令查看接口的MTU。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值