TCP IP 网络协议基础入门 1

提到网络协议栈结构,最著名的当属 OSI 七层模型,但是 TCP/IP 协议族的结构则稍有不同,它们之间的层次结构有如图对应关系:

可见 TCP/IP 被分为 4 层,每层承担的任务不一样,各层的协议的工作方式也不一样,每层封装上层数据的方式也不一样:

  • 应用层:应用程序通过这一层访问网络,常见 FTP、HTTP、DNS 和 TELNET 协议;
  • 传输层:TCP 协议和 UDP 协议;
  • 网络层:IP 协议,ARP、RARP 协议,ICMP 协议等;
  • 网络接口层:是 TCP/IP 协议的基层,负责数据帧的发送和接收。
知识点
  • IP 地址
  • 域名
  • MAC 地址
  • 端口号
  • 封装和分用

IP地址

网络上每一个节点都必须有一个独立的 IP 地址,通常使用的 IP 地址是一个 32bit 的数字,被 . 分成 4 组,例如,255.255.255.255 就是一个 IP 地址。有了 IP 地址,用户的计算机就可以发现并连接互联网中的另外一台计算机。

在 终端输入 ifconfig -a 命令查看自己的 IP 地址:

复制代码
ifconfig -a

域名

  • 域名与 IP 地址
    • 对应关系 :域名是为方便记忆和使用而设计的,互联网中的计算机相互通信依赖的是 IP 地址。 二者存在对应关系,通过 DNS(域名系统)进行解析,将便于人们记忆的域名转换为计算机能够识别和通信的 IP 地址。例如,当在浏览器中输入 "baidu.com",DNS 会将其解析为对应的 IP 地址,如 220.181.38.148 ,这样浏览器就能找到百度服务器并获取网页内容。
    • 映射实现:这种映射关系通过 DNS 记录实现,常见的记录类型如 A 记录将域名映射到 IPv4 地址,AAAA 记录映射到 IPv6 地址。

我们可以使用命令 nslookup 或者 ping 来查看与域名相对应的 IP 地址

例如一般情况下我们可以ping baidu.com来查看百度服务器的IP地址:

MAC地址

MAC(Media Access Control)地址,或称为物理地址、硬件地址,用来定义互联网中设备的位置。

在 TCP/IP 层次模型中,网络层管理 IP 地址,链路层则负责 MAC 地址。因此每个网络位置会有一个专属于它的 IP 地址,而每个主机会有一个专属于它 MAC 地址。

端口号

IP 地址是用来发现和查找网络中的地址,但是不同程序如何互相通信呢?这就需要端口号来识别了。如果把 IP 地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是端口采用 16 比特的端口号标识,一个 IP 地址的端口可以有 65536(即:216)个之多!

  • 类比酒店房间:将互联网中的计算机比作一家大型酒店,IP 地址是酒店的地址,能定位到这家酒店。而端口号就像是酒店里每个房间的门牌号,每个房间(应用程序或服务)都有唯一门牌号。不同服务,如 HTTP 服务(网页浏览)、FTP 服务(文件传输),就像酒店里不同功能的房间,通过各自端口号来区分。例如,HTTP 服务默认使用 80 端口(现在常用 443 端口进行加密通信),这就如同酒店里提供特定服务的房间有固定门牌号。
  • 类比电话分机:把 IP 地址看作公司总机号码,拨打总机(访问 IP 地址)后,要找具体部门(运行在计算机上的特定应用程序),就需拨分机号,端口号就类似分机号。不同部门(应用程序)对应不同分机号(端口号),确保电话(数据)能准确到达。

服务器的默认程序一般都是通过人们所熟知的端口号来识别的。例如,对于每个 TCP/IP 实现来说,SMTP(简单邮件传输协议)服务器的 TCP 端口号都是 25,FTP(文件传输协议)服务器的 TCP 端口号都是 21,TFTP(简单文件传输协议)服务器的 UDP 端口号都是 69。任何 TCP/IP 实现所提供的服务都用众所周知的 1-1023 之间的端口号。这些人们所熟知的端口号由 Internet 端口号分配机构(Internet Assigned Numbers Authority,IANA)来管理。

常用协议对应端口号:

  • SSH 22
  • FTP 20 和 21
  • Telnet 23
  • SMTP 25
  • TFTP 69
  • HTTP 80
  • SNMP 161
  • Ping 使用 ICMP,无具体端口号

封装和分用

封装:当应用程序发送数据的时候,数据在协议层次当中自顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,这样的信息称之为协议数据单元(Protocol Data Unit,缩写为 PDU),在分层协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息和用户信息。如下图所示:

  • 物理层(一层)PDU 指数据位(Bit)
  • 数据链路层(二层)PDU 指数据帧(Frame)
  • 网络层(三层)PDU 指数据包(Packet)
  • 传输层(四层)PDU 指数据段(Segment)
  • 第五层以上为数据(data)

分用:当主机收到一个数据帧时,数据就从协议层底向上升,通过每一层时,检查并去掉对应层次的报文首部或尾部,与封装过程正好相反。

相关推荐
iナナ6 小时前
传输层协议——UDP和TCP
网络·网络协议·tcp/ip·udp
舒一笑7 小时前
Mac 上安装并使用 frpc(FRP 内网穿透客户端)指南
后端·网络协议·程序员
搬码临时工11 小时前
端口映射原理操作详解教程:实现外网访问内网服务,本地路由器端口映射公网ip和软件端口映射域名2种方法
网络·tcp/ip·智能路由器
Mr_Xuhhh11 小时前
NAT、代理服务、内网穿透
网络·网络协议·http·https·udp·智能路由器
用户849137175471613 小时前
为什么大模型都离不开SSE?带你搞懂第1章〈SSE技术基础与原理〉
前端·网络协议·llm
励志五个月成为嵌入式糕手15 小时前
0819 使用IP多路复用实现TCP并发服务器
java·服务器·tcp/ip
王燕龙(大卫)1 天前
tcp会无限次重传吗
网络·tcp/ip
weisian1511 天前
HTTP协议-3-HTTP/2是如何维持长连接的?
网络·网络协议·http
tan77º1 天前
【项目】分布式Json-RPC框架 - 项目介绍与前置知识准备
linux·网络·分布式·网络协议·tcp/ip·rpc·json
墨雨听阁1 天前
8.18网络编程——基于UDP的TFTP文件传输客户端
网络·网络协议·学习·udp