【网络协议】TCP/IP协议

简介: 【网络协议】TCP/IP协议

TCP/IP的具体含义

TCP/IP实际上我们所说的是指TCP/IP==协议群==
在这里插入图片描述

互联网基础知识

互联网一次原指网际网,意思连接一个又一个网络。

TCP/IP协议分层模型

  1. 物理层(硬件):负责数据传输的硬件
  2. 网卡层
  3. 互联网层
  4. 传输层
  5. 应用层

IP:
IP是跨越网络传送数据包,使整个互联网都能收到数据的协议。IP协议使数据能够发送到地球的另一端,这期间它使用IP地址作为主机的标识。

ICMP:
IP数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发送一个发生异常的通知。ICMP就是为这一功能而制定的。它有时也被用来诊断网络的健康状况。

ARP:
从分组数据包的IP地址中解析出物理地址的一种协议。

TCP:
TCP是一种面向有连接的传输层协议。它可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包,传输顺序乱掉等异常情况。此外TCP还能够有效利用带宽,缓解网络拥堵。

UDP:
UDP有别于TCP,它是一种面向无连接的传输协议,UDP不会关注对端是否真的收到了传送过去的数据,如果想知道,则需要在应用程序中实现。

TCP/IP分层模型与通信示例

包:全能性术语。
帧:表示数据链路层中包的单位。
数据包:IP/TCP等网络层以上的分层中包的单位。
段:TCP数据流中的信息。
消息:应用协议中数据的单位。

==包首部就像是协议的脸==

数据包由两个部分组成:
1.协议所用到的首部
2.上层传过来的数据

发送数据包过程:

假设A给B发送电子邮件,内容为“早上好”。
1.应用程序处理:应用在发送邮件的那一刻建立TCP连接,从而利用这个TCP连接发送数据。

2.TCP模块的处理:TCP根据应用的提示,负责建立连接,发送数据以及断开连接,为了实现TCP的这一功能,需要在应用层数据的前端附加一个TCP首部。TCP首部包括源端口号和目标端口号(用以识别发送主机跟接受主机上的应用),序号(用以发送的包中哪部分是数据)以及校验和(用以判断数据是否被破坏)。随后将附加了TCP首部的包再发给IP。

3.IP模块的处理:IP将TCP传过来的数据的前部加上自己的IP首部。IP首部中包含接受端的IP地址以及发送端IP地址,紧跟着IP首部的还有用来判断其后面的数据是TCP还是UDP。
如果尚不知道接收端的MAC地址,可利用ARP查找,只要知道了对端的MAC地址,就可以将MAC地址和IP地址交给以太网的驱动程序,实现数据传输。

4.网络接口(以太网驱动)的处理:从IP传过来的IP包,对于以太网驱动来说不过就是数据,给这个数据附加上以太网首部并进行发送处理。以太网首部中包含接受端的MAC,发送端MAC地址以及标志以太网类型的以太网数据的协议。根据上述信息产生的以太网数据包将通过物理层传输到接收端。

在这里插入图片描述

接收数据包的过程

==包的接受过程是发送过程的逆序处理==
5.网络接口(以太网驱动)的处理:主机收到以太网包以后,首先从以太网的包首部找到MAC地址判断是否为发给自己的包。如果不是则丢弃数据。
若果是则判断以太网协议所传送过来的数据类型,IP则传到IP子程序,ARP则交给ARP处理。如果是无法识别的协议类型,则丢弃数据。

6.IP模块的处理:IP收到数据包后做出同样的操作,判断上一层的协议,是TCP还是UDP。

7.TCP模块的处理:在TCP模块中,首先会计算一下校验和,判断数据是否被破坏;然后检查是否按照序号接收数据,最后检查端口号,确定具体的应用程序。

8.应用程序的处理:顺利接收邮件“早上好”。

目录
相关文章
|
8天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
34 13
|
8天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
1月前
|
网络协议 Java 程序员
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
31 2
|
1月前
|
网络协议 网络架构
【网络】TCP/IP 五层网络模型:数据链路层
【网络】TCP/IP 五层网络模型:数据链路层
41 1
|
1月前
|
网络协议 算法 程序员
【网络】TCP/IP 五层网络模型:网络层
【网络】TCP/IP 五层网络模型:网络层
73 1
|
1月前
|
XML JSON 网络协议
【网络】TCP/IP五层网络模型:应用层
【网络】TCP/IP五层网络模型:应用层
17 1
|
1月前
|
网络协议 Java 程序员
【网络】TCP/IP
【网络】TCP/IP
42 0
|
2月前
|
网络协议 网络架构 数据格式
TCP/IP基础:工作原理、协议栈与网络层
TCP/IP(传输控制协议/互联网协议)是互联网通信的基础协议,支持数据传输和网络连接。本文详细阐述了其工作原理、协议栈构成及网络层功能。TCP/IP采用客户端/服务器模型,通过四个层次——应用层、传输层、网络层和数据链路层,确保数据可靠传输。网络层负责IP寻址、路由选择、分片重组及数据包传输,是TCP/IP的核心部分。理解TCP/IP有助于深入掌握互联网底层机制。
381 2
|
2月前
|
网络协议 Java
谈谈TCP/IP网络编程
【9月更文挑战第1天】在当今数字化的世界中,网络通信是连接各种设备和系统的关键。TCP/IP协议作为互联网通信的基石,被广泛应用于各种网络场景。了解TCP/IP网络编程的概念,并掌握如何在Java中实现TCP/IP通讯,对于开发人员来说是非常重要的。
71 4
|
2月前
|
网络协议 安全 数据安全/隐私保护
动静态IP的网络协议有什么不同
IP地址分为静态和动态两种分配方式。静态IP地址由管理员手动分配,确保设备具有固定且唯一的网络标识,适用于服务器等关键设备。动态IP地址则通过DHCP服务器自动分配,提供更高的灵活性和管理效率,适合个人电脑和移动设备。两者在网络配置、管理和安全性方面各有优劣,需根据具体应用场景进行选择。静态IP地址虽稳定但配置复杂,安全性较低;动态IP地址配置简单,安全性更高,能有效防止针对固定IP的攻击。
下一篇
无影云桌面