【网络】网络的基本结构与特征

一. 网络通信的基本元素

1.IP地址

a. 概念
IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主机的⽹络地址
就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。
b. 格式
IP地址是⼀个32位的⼆进制数,通常被分割为4个“8位⼆进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110。
通常⽤==“点分⼗进制”==的⽅式来表⽰,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的⼗进制整数)。如:192.138.0.1。

2. 端口号

a. 概念
在⽹络通信中,IP地址⽤于标识主机⽹络地址,端⼝号可以标识主机中发送数据、接收数据的进程。简单说,端⼝号⽤于定位主机中的进程。
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货⼈(端⼝号)。
b. 格式
端⼝号是0~65535范围的数字,在⽹络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收⽹络数据。

3.协议

⽹络通信传输的数据类型可能有多种:图⽚,视频,⽂本等。基于⽹络数据传输,需要使⽤协议来规定双⽅的数据格式。
a. 概念
协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
协议(protocol)最终体现为在⽹络上传输的数据包的格式

二. TCP/IP 五/四层网络协议

1.五元组

在TCP/IP协议中,⽤五元组来标识⼀个⽹络通信:

  1. 源IP:标识源主机
  2. 源端⼝号:标识源主机中该次通信发送数据的进程
  3. ⽬的IP:标识⽬的主机
  4. ⽬的端⼝号:标识⽬的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双⽅约定的数据格式

2.四/五层协议

在这里插入图片描述

  • 应⽤层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远程访问协议(Telnet)等。我们的⽹络编程主要就是针对应⽤层。
  • 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到⽬标主机。
  • ⽹络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。
  • 数据链路层(网卡层):负责设备之间的数据帧的传送和识别。交换机(Switch)⼯作在数据链路层
  • 物理层:负责光/电信号的传递⽅式。集线器(Hub)⼯作在物理层。(四层协议不含)

问:为什么网络协议要分层?
分层最⼤的好处,类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。
在代码中,类似于定义好⼀个接⼝,⼀⽅为接⼝的实现类(提供⽅,提供服务),⼀⽅为接⼝的使⽤类(使⽤⽅,使⽤服务):
• 对于使⽤⽅来说,并不关⼼提供⽅是如何实现的,只需要使⽤接⼝即可
• 对于提供⽅来说,利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可。
这样能更好的扩展和维护。

也就是说,后续在进行网络编程时,面向传输层协议提供给应用层的接口进行编程即可,无需关注网络层,数据链路层以及物理层是如何工作的。

3.封装和分用

a. 封装
在这里插入图片描述

  • TCP/UDP首部中承载的最重要的信息就是源端口和目的端口;
  • IP首部中承载的最关键的信息就是源IP和目的IP;

b. 分用
在这里插入图片描述
对于实际中的情况,两台通信的主机一般不会是由网线直连的。而是通过一系列的交换机/路由器进行数据转发:
在这里插入图片描述
对于交换机,只封装分用到数据链路层;对于路由器,只封装分用到网络层。

4.网络传输单位术语

  • 包(packet) IP数据包
  • 段(segment) TCP数据段
  • 报(datagram) UDP数据报
  • 帧(frame) 以太网数据帧

三. TCP/UDP的特点

TCPUDP
有连接无连接
可靠传输不可靠传输
面向字节流面向数据报
全双工全双工
  • 此处的有/无连接不是真实意义上的连接,而是虚拟的连接,例如:打电话就是有连接,发微信就是无连接;
  • 此处的可靠传输指的是发送的数据对方收没收到,发送方可以清楚的感知到;
  • 全双工相对于半双工,一个通道可以双向通信就是全双工,只能单向通信就是半双工。

此处TCP/UDP的特点会在后面的网络编程中体现出来,后续我们再细细说来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值