热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TCP/IP协议之IP层

TCPIP协议的结构参见下图。有应用层,运输层,网络层,链路层。但是如果更细化的话,其实还有几层没在这上面体现出来。1表示层:数据格式化,代码转换,加密。没有协议2会话层:解除或者建立与其他结

TCP/IP协议的结构参见下图。有应用层,运输层,网络层,链路层。

但是如果更细化的话,其实还有几层没在这上面体现出来。

1 表示层:数据格式化,代码转换,加密。 没有协议

2 会话层:解除或者建立与其他结点的联系。没有协议

3 物理层:以二进制形式在物理链路上传输数据。协议有ISO2100,IEEE802

在上图中加上这三层协议。就构成了OSI七层协议网络模型。从上到下分别是应用层,表示层,会话层,传输层,网络层。数据链路层,物理层。

为什么一个数据传输要分成这么多层呢。统一为一个模块不行么。其实不管是多层还是单层,都是可以实现数据传输的。但是在OSI7层模型中,每一层都有自己独特的任务。如果如果只有一层的话。在后期维护的时候,就会出现混乱。没有一个明确的责任主体

这就好比是一个工厂。工厂有生产线,采购部,质量部,运输部,财务部,市场部。对一个产品从无到有的过程中,会经历以上部门的处理。如果有任意一个节点出了问题,只需要处理问题节点即可,其他节点照常运行。OSI7层模型也是一样的道理。各个层可以看做是生产流水线上各个部门。各司其职,各自负各自的责任。这也体现了分工协作的思想。

那么7层模型中各自的作用是什么呢:

应用层:文件传输,电子邮件,文件服务,聊天软件,视频播放等各种软件应用。常用的协议有FTP,TFTP,SNMP,SMTP,DNS,Telent. 作用在于产生数据报文

传输层:协议有TCP,UDP,是对数据报文在链路上传输进行控制的. 作用在于告诉数据报文如何去目的地

网络层:协议有IP,ICMP,RIP,OSPF,BGP等。是对数据报文进行地址寻址的协议。作用在于告诉数据报文去哪

数据链路层:协议有ARP,RARP,PPP等,作用在于告诉数据报文如何在路上行走。

我们来看下报文的结构,从应用层到链路层,每一层对自己的数据进行一个打包,交给下一层进行处理。最终形成一个以太网帧。

到了目的地后,对端也是从链路层解析到应用层,然后解析出来的数据交给各层进行处理,如下图。

这种封装,解封装的过程就好比是发送一个公司给另外一个公司发送包裹。源公司的各个部门将自己的数据封装好,最终形成一个总的包裹,目的公司收到包裹后,按照包裹的封装各层解析,然后交给各个对应的部门

 

那么下面我们就首先来介绍下IP层协议。

将IP层协议首先介绍IP地址的概念。IP地址在网络上的作用就好比我们在快递物品时填写的地址。每个设备要想在网络上进行应用交互或者是和其他设备通信,都需要一个IP地址。那么我们的IP地址在哪能查呢。

Windows系统下在cmd界面输入ipconfig。得到下面的结果。其中IPV4地址就是本机的IP地址。

Linux系统下输入ifconfig

在查询出来的信息中,有几个概念需要介绍下。1 子网掩码。2 默认网关。

IPV4地址为32bit,分为两个部分,网络号和主机号。为什么要这样区分呢。前面讲到IP协议的作用就在于寻址,这个寻址就是寻找不同网络的地址。网络地址就是由IP地址的网络号确定的,不同的网络号代表不同的网络地址。如果属于同一网络,那么主机号就是区分同一网络下的设备。就好比有一栋楼,这栋楼的业主要寄包裹。那么地址如下:

XX市XX区XX街道XX小区XXY-Y号。前面红色标注的地址每个业主都一样。不一样的是具体门牌号。红色标注的地址就好比IP网络中的网络地址,Y-Y号就好比主机地址。

IP地址的格式如下,分为A-E类地址。A-E类地址通过最左边的比特来确定。A类为0,B类为10,C类为110,D类为1110,E类为11110.。 后面的部分就区分为网络号和主机号

前面介绍了IP地址的作用,那么网络掩码是干嘛的呢。网络掩码就是用来区分IP地址的网络号以及主机号分别是多少。计算的方法就是IP地址和网络掩码进行与运算,得到的就是网络地址。

比如192.169.1.1的二进制位11000000 10101001 00000001 00000001

掩码255.255.255.0的二进制位 11111111 11111111 11111111 00000000

得到的网络地址就是192.169.1.0。那么主机号就是最后的1个字节(8个bit)。那么在这个网络下主机IP地址的范围就是192.169.1.1->192.169.1.254。其中192.169.1.0是网络号,主机地址不会采用。192.169.1.255是该网络的广播地址。因此主机号的bit为全0 或者全1都不会采用. 因此可分配的主机个数为2的n次方(n为主机号的bit个数)-2. 参考上面的这个例子,主机号长度为8. 那么可分配的主机个数为2^8-2=256-2=254。

前面A-E类IP地址的网络号和主机号都是固定的,对于具体的网络部署来说并不是很方便,我们可以自己定义网络号和主机号。也就是自定义网络号和主机号的长度。这叫做变长子网掩码。比如刚才的192.169.1.1的网络号是192.169.1.0. 我们也可以写成192.169.1.1/24. 这个24表明的是网络长度。这样写的话就比较直观了。那么边长子网掩码就是改写这个长度,比如192.169.1.1/20 那么网络号就只占20位。结果如下.由于网络号只占了20位,因此主机IP地址长度从8扩展为12. 那么可分配的主机号就为2^12-2=4094。

因此如果想一个网络容纳更多主机,那么可以缩短网络号长度。如果想规划更多的子网,那么可以增加网络号长度

下面再看下网关的含义:顾名思义,网关就是网络关口的意思。通俗点说就是告诉网络下一个地址是在哪。比如前面查出来的网关为192.168.0.1,IP地址为192.168.0.5。 也就是说首先将数据包发给192.168.0.1. 这个192.168.0.1在真实的环境中就是我的无线路由器。连接到到这个无线路由器下的设备都将数据包发送给路由器。然后通过路由器向外转发。

那么网关是否是必须要配置的呢,其实也不是,只要是L3设备可以通过配置路由和下一跳,这里下一跳就是起到网关的作用。数据发到网关设备后,网关设备会根据自己的路由表找到转发路径将数据转发到目的地址。我们可以用tracert(linux下用traceroute)的命令来看下,比如输入tracert www.sina.com.cn 就会得到下面的经过的地址。第一个地址就是192.168.1.1网关地址。下面显示总共经过了8次转发。

Windows:

Linux:

下面我们来看下IP协议的组成,IPV4中普通的IP首部长20个字节。其中有32位的源IP地址和32位的目的IP地址。

TTL:生存时间。代表了数据包可以经过的最多路由器数。比如TTL为10,意思是如果经过10次路由器转发,仍然未找到目的地址,则报文丢弃

8位协议指示的是传输层承载的协议

16位总长度:指IP数据包的最大长度。16bit那么最长可达65535字节。但是通过链路的MTU不会有这么大。因此如果数据包长度超过了MTU,数据包会被分片。如果发生了分片,则需要用到16位标识以及13位片偏移来找到分片的报文。

我们用wiresharK来抓取一个具体的数据包看下IP报文:其中Time to live:128也就是TTL 128.

Protocol: UDP,说明这个是一个UDP报文。 Source和Destination分别是源和目的IP地址

 


推荐阅读
  • 1、TCPIP 是个协议组,从下往上可分为:网络接口层、网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 体积小巧的vsftpd与pureftpd Docker镜像在Unraid系统中的详细配置指南:支持TLS加密及IPv6协议
    本文详细介绍了如何在Unraid系统中配置体积小巧的vsftpd和Pure-FTPd Docker镜像,以支持TLS加密和IPv6协议。通过这些配置,用户可以实现安全、高效的文件传输服务,适用于各种网络环境。配置过程包括镜像的选择、环境变量的设置以及必要的安全措施,确保了系统的稳定性和数据的安全性。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 公司计划部署邮件服务器,考虑到已有域名,决定自行搭建内部邮件服务器。经过综合考量,最终选择在Linux环境中进行搭建,并记录了相关配置和实践过程。本文将详细介绍Postfix的基本设置步骤和实践经验,帮助读者快速掌握邮件服务器的搭建方法。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 端口转发(Port Forwarding)类似于服务重定向,许多路由器中也称其为虚拟服务器(Virtual Server)。通过合理配置端口转发,可以实现外部网络对内部网络中特定设备和服务的高效访问,从而提高通信效率和灵活性。此外,正确设置端口转发还能增强网络安全,确保只有授权的流量能够进入内网,有效防止未授权访问和潜在威胁。 ... [详细]
  • # 运维小白的成长日记第七天OSI七层传输层/应用层精讲!
    运维小白的成长日记第七天-OSI七层传输层应用层精讲!1、IP提供了点到点的连续接,通过IP地址可以找到目标主机。但是目标主机有很多应用,服务器到底使用哪个应用来响应客户端?通过端 ... [详细]
  • 本文主要从TLS1.3的优势、部署和时间发展线介绍了这上篇文章回顾:浅谈DHCP协议 ... [详细]
author-avatar
手机用户2502907603
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有