首页 > 其他分享 >TCP/IP上三层协议

TCP/IP上三层协议

时间:2024-11-15 19:18:37浏览次数:1  
标签:IP TCP 传输 传输层 三层 数据包 设备

TCP/IP上三层的角色

同一台设备上的进程间通信有多种方式,如管道、消息队列、共享内存、信号等。而不同设备间的进程通信需要网络通信,由于设备具有多样性,因此协商出了一套通用的网络协议。这个网络协议是分层的,每一层都有各自的作用和职责,接下来将依据 “TCP/IP 网络模型” 对每一层进行介绍。

应用层(对接程序)

是最上层的协议,用户能够直接接触到的就是应用层,我们手机的软件等等都是在这一层实现的,需要通信时把数据传给下一层传输层,所以本层主要针对为用户提供应用的功能,而不关心数据在互联网之中是如何传输的。

应用层主要工作在操作系统中的用户态,而传输层以及一下在内核态工作。

传输层(为应用层提供网络支持)

传输层有两种传输协议:TCP 和 UDP。

TCP,即传输控制协议 (Transmission Control Protocol),很多应用都采用 TCP 作为传输层协议,比如 HTTP 应用层协议。TCP 比 UDP 具备更多功能,包括流量控制、超时重传和拥塞控制等,这些功能保障了数据包能够可靠地传递到对方。

UDP 较为简单,它只负责发送数据包,不确保数据包能到达接收方。不过,UDP 的实时性和传输效率比较高。虽然 UDP 也可以实现可靠传输,但需要在应用层上实现类似 TCP 的特性,而开发一个商业可用的可靠 UDP 传输协议并不容易。

当应用程序需要传输的数据量很大时,直接传输难以管控。当传输层的数据包大小超过 MSS(TCP 最大报文段长度)时,数据包需要进行分块。这样,如果在传输过程中有一个分块丢失或损坏,只需要重新发送该分块,而不必重发整个数据包。在 TCP 协议中,这些分块被称为 TCP 段 (TCP Segment)。

当设备作为接收方时,传输层需要把数据包传递给相应的应用。但一台设备上可能有多个应用在接收或传输数据,所以需要用一个编号来区分不同的应用,这个编号就是端口。

例如,80 端口通常用于 Web 服务器,22 端口通常用于远程登录服务器。对于浏览器(客户端)中的每个标签页,它们都是独立的进程,操作系统会为这些进程分配临时的端口号。

因为传输层的报文中会包含端口号,所以接收方能够识别出该报文是发送给哪个应用的。

网络层

刚接触传输层时,人们可能会以为它负责将数据从一个设备传输到另一个设备,但实际上并非如此。在实际的网络环境中,网络环节错综复杂,存在着各种各样的线路和分叉路口,若要将一个设备的数据传输给另一个设备,就需要在众多路径和节点中进行选择。而传输层的设计理念是简单、高效和专注,若让传输层负责这一功能,就违背了其设计原则。

也就是说,我们不希望传输层协议处理过多事务,它只需服务好应用,作为应用间数据传输的媒介,实现应用到应用的通信即可,实际的传输功能应由下一层 —— 网络层来负责。

网络层最常使用的是IP 协议(interet Protocol),IP协议会将传输层的报文作为数据部分,再加上IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的IP 报文。

首先,网络层的主要功能是将数据从一个设备传输到另一个设备。在庞大的网络环境中,设备众多,因此需要通过 IP 地址来区分和标识设备。

对于 IPv4 协议,IP 地址由 32 位组成,分成四段(例如 192.168.100.1),每段 8 位。单一的 IP 地址虽然可以标识设备,但在查找设备时效率很低,因此 IP 地址被分成两种意义:网络号和主机号。

  1. 网络号:标识 IP 地址属于哪个子网。
  2. 主机号:标识同一子网下的不同主机。

子网掩码用于区分 IP 地址中的网络号和主机号。例如,子网掩码 255.255.255.0 与 IP 地址 10.100.122.2 进行按位与运算,可以得到网络号 10.100.122.0,路由器根据 IP 址的网络号进行转发,帮助数据包找到目标地址的子网,并将数据包转发到相应的网络内。

网络接口层(Link Layer)在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。

引用 ~~小林coding

标签:IP,TCP,传输,传输层,三层,数据包,设备
From: https://www.cnblogs.com/coder-jjidm/p/18548530

相关文章

  • NOIP 备赛:CF 2E 板刷
    从\(2024.11.05\)之前的比赛排着刷。CF2028E给定一棵树,根为\(1\)。爱丽丝的起点位于某个顶点\(v\)。她想走出洞口,但不幸的是,红心皇后已经下令处死她。每分钟都会掷一枚公平的硬币。如果硬币是正面,爱丽丝就可以移动到她当前位置的相邻顶点,反之,红心皇后就可以把爱丽丝拉到......
  • AutoSAR CP DoIP规范导读
    主要功能和用途诊断通信协议实现遵循标准:遵循ISO13400-2标准,实现了诊断通信在IP网络上的传输协议和网络层服务,包括数据封装、传输、路由等功能。多种消息支持车辆识别与公告:能够进行车辆识别请求和响应,发送车辆公告信息,包括车辆标识、实体标识、组标识等......
  • NOIP2024加赛5
    NOIP2024加赛5题目来源:2023NOIPA层联测31\(T1\)HZTG5777.暴力操作(opt)\(40pts\)先将\(\{a\}\)升序排序。因为\(\left\lfloor\dfrac{\left\lfloor\frac{a}{b}\right\rfloor}{c}\right\rfloor=\left\lfloor\dfrac{a}{bc}\right\rfloor\),先钦定\(......
  • 吉客云与用友BIP数据无缝对接案例分享
    吉客云数据集成到用友BIP的技术案例分享在企业日常运营中,数据的高效流转和准确对接是实现业务流程自动化的重要环节。本文将聚焦于一个具体的系统对接集成案例:吉客云-调拨出库--->YS-其他出库单-OK,详细探讨如何通过轻易云数据集成平台,将吉客云的数据无缝集成到用友BIP系统中。首......
  • iPhone内存恢复:​​如何从iPhone内存中恢复数据?
    我们必须接受这样一个事实:没有100%有效的方法来避免iPhone上的数据丢失。您可能会因错误删除而丢失iPhone存储中的数据。或者,您可以将iPhone重置为出厂设置以修复一些故障,重置后所有数据都会消失。由于iPhone没有外置卡,您可能会问:有没有办法从iPhone内置存储卡中恢复数......
  • 代理模式在JavaScript中的恋爱应用笔记
    一、引言在面向对象编程的世界里,代理模式犹如一位巧妙的媒人,巧妙地连接了两个对象之间的交互,而无需直接显式地引用彼此。这种模式不仅降低了系统的耦合度,还使得代码更加灵活、可扩展。而在JavaScript的世界里,代理模式更是展现出了其独特的魅力。今天,我将结合恋爱场景,为大家......
  • 解码JavaScript作用域:var a = 1; 背后的故事
    1、引言JavaScript是一种广泛使用的编程语言,其灵活的语法和强大的功能使其成为前端开发的首选语言。然而,对于初学者来说,理解JavaScript中的作用域机制可能会有些困难。本文将通过一句简单的代码vara=1;,深入解析JavaScript的执行机制和作用域管理。2、变量声明与......
  • 2024.11.15 NOIP 模拟 - 模拟赛记录
    返乡(home)不给大样例是怕我找规律出答案吗?但是我还是找到规律了。题解说是结论题,但是这个结论即使观察小样例也很好猜(如果我是出题人就把样例打乱一下顺序)。首先考虑只有二维偏序时的最优放置方法:首先第一个数是不能重复的,因为一旦重复,第二个数无论怎么选,都会构成偏序;第二个......
  • NOIP2024模拟赛#21 总结
    坐牢3h+。赛时开T1,发现好唐啊,10min切了。过了全部大样例。开T2,现在是8:10。?现在是8:27,我怎么把T2大样例全过了。是不是太水了。我只是胡了一个贪心啊。开T3,现在是8:30。草,T1加样例了,做法假了。先不管T1了,先去看T3。感觉保证每次操作后都会满足对于\(i......
  • 【JavaScript】LeetCode:96-100
    文章目录96单词拆分97最长递增子序列98乘积最大子数组99分割等和子集100最长有效括号96单词拆分动态规划完全背包:背包-字符串s,物品-wordDict中的单词,可使用多次。问题转换:s能否被wordDict中的单词组成。dp[i]:长度为i的字符串s[0,i]能否被wordDict组成,dp[i]=......