初始网络编程

阅读 105

2023-01-30



目录

1.网络发展史

1.1 独立模式

1.2 网络互联

1.3 局域网

1.4 广域网

2.网络通信基础

2.1 IP地址

2.2 端口号

2.3 认识协议

2.4 五元组

2.5 协议分层

2.6 封装和分用


1.网络发展史

1.1 独立模式


1.2 网络互联

随着时代的发展 , 越来越需要计算机之间共享通信 , 数据和软件 , 即多个计算机协同完成任务 , 于是有了网络互联.

网络互联:将多台计算机连在一起完成数据共享.

数据共享的本质是网络传输 , 即计算机之间通过网络来传输数据 , 也称网路通信.

根据网络互联的规模不同 , 可以分为广域网局域网.


1.3 局域网

局域网即 Local Area Network 简称LAN.局域网内的主机之间可以进行网络通信 , 又称内网. 但局域网和局域网之间在没有连接的情况下不能进行通信.

最初两个主机之间想要进行网络通信 , 通常采用网络直连的方式 , 但一次只能连一个电脑局限性较大.

随后出现了集线器的网络互联方式 , 但集线器没有寻址的功能 , 它会把信息同时发给相连的所有主机 , 由主机去辨认该信息是否是自己的 , 因此还是有很大的局限性.

交换机的出现解决了集线器无法寻址的缺陷 , 而且交换机相当于内置了一个号码本 , 可以精确的对应号码发送信息 , 如果发送信息时 , 号码本上没有对应的电话 , 这时才会进行广播式的发送 , 一但找到目标会立即更新号码本. 但只能组建局域网

路由器的出现解决了 , 局域网之间无法进行互联的局限.


1.4 广域网

广域网简称 Wide Area Network , 简称 WAN. 通过路由器将多个局域网组建起来构成广域网 , 广域网内部的每个局域网都是其子网.


2.网络通信基础

网络的互联的目的是进行网络通信 , 也就是网络数据传输 , 更具体一点就是 , 网络主机中的不同进程间基于网络传输数据.

那么 , 在组件网络中如何判断 , 到底是那台主机将数据传输到另一台主机上? 这时就需要IP地址.

2.1 IP地址

  • 概念:
  • 格式:
  • 特殊IP:

IP地址解决了网络通信时 , 定位网络主机的问题 , 但是还存在一个问题 , 传输到目的主机后 , 由哪个进程来接收这个数据呢?这就需要端口号来标识.


2.2 端口号

概念:

在网络通信中 , IP地址用于标识主机网络地址 , 端口号可以标识主机中发送数据 , 和接收数据的进程 , 简单说: 端口号用于定位主机中的进程.

格式:

端口号是0-65535范围的数字 , 在网络通信中 , 进程可以通过绑定一个端口号 , 来发送及接收数据.

注意事项:

两个不同的进程 , 不能绑定同一个端口号 , 但一个进程可以绑定多个端口号.


2.3 认识协议

有了IP地址和端口号 , 可以定位到网络中唯一一个进程 , 但还存在一个问题 , 网络通信是基于二进制0/1数据来传输 , 如何告诉对方发送的数据是什么样呢?

网络通信传输的数据类型可以有很多中: 图片,视频,文本等. 同一个类型的数据 , 格式也可能不同 , 如发送一个文本字符串 "你好,世界!" , 那么如果表示发送的数据是哪种类型?以及文本的编码格式是什么?

因此基于网络数据传输 , 需要使用协议来规定双方的数据格式

概念:

1.语法: 即数据与控制信息的结构或格式:

  • 类似打电话时双方约定都使用普通话

2.语义: 即需要发出何种控制信息 , 完成何种动作以及作出何种响应.

  • 语义主要用来说明通信双方应当怎么做 , 用于协调与差错处理的控制信息.
  • 类似于打电话时 , 一方说: 你愁啥? 另一方说: 瞅你咋地?

3.时序 , 即事件顺序的详细说明.

  • 时序定义了何时进行通信 , 先讲什么 , 后什么 , 讲话的速度. 比如是采用同步传输还是异步传输.
  • 类似于男生和女生打电话 , 总是有男生发起通话 , 而总是男生恋恋不舍的时候 , 由女生要求结束通话.

作用:

为什么需要协议?

就好比见网友 , 彼此协商胸口插只玫瑰花见面 , 这就是一种提前的约定 , 也可以称之为协议.

计算机之间的传输媒介是光信号和电信号. 通过"频率"和"强弱"来表示 0 和 1 这样的信息. 想要传递各种不同的信息 , 就需要约定好双方的数据格式.

知名协议的默认端口:

系统端口号范围为 0-65535 , 其中: 0-1023 为知名端口号 , 这些端口预留给服务端程序绑定广泛使用的应用层协议 , 如:

Tips: 以上只是说 0-1023 范围的知名端口号用于绑定知名协议 , 但某个服务器也可以使用其他1024-65535 范围内的端口来绑定知名协议.例如: 餐厅的VIP包房是给会员使用 , 但会员也可以不坐包房 , 坐普通位置.


2.4 五元组

在TCP/IP协议中 , 用五元组来标识一个网络通信:

五元组在网络通信中类似于发快递:


2.5 协议分层

对于网络分层来说 , 往往分成几个层次进行定义.

什么是协议分层

协议分层类似于打电话时 , 定义不同的层次协议.

上述例子中 , 协议只有两层 , 但是实际的网络通信会更复杂 , 需要更多的层次.


分层的作用

分层的最大好处类似于面向接口编程 , 定义好两层之间的接口规范 , 让双方遵循这个规范来对接.

在代码中 , 类似于定义好一个窗口 , 一方为接口的实现类(提供方 , 提供服务) , 一方为接口的使用类(使用方 , 使用服务).

 这样可更好的展开和维护.


OSI七层模型:

OSI: 即Open System interconnection , 开放系统互联.

OSI 七层网络模型划分为以下七层 ,上层协议要调用下层协议(上层协议把数据交给下层继续封装) 下层为上层提供服务支持(下层协议解析好数据交给上级).

分层名称功能每层功能概览
7应用层针对特定应用的协议针对每个应用的协议
6表示层设备固有的数据格式和网络标准的数据格式的转换接收不同表示形式的信息,如文字流,图像,声音等
5会话层通信管理,负责建立和断开通信连接何时建立连接,何时断开连接以及保持多久连接?
4传输层管理两个节点之间的数据传输站在商家和客户的角度,不关心传输的过程只关心终点和起点.(上海---西安)
3网络层地址管理与路由选择

上海--西安走哪条路线,最划算

上海--苏州--西安

上海--徐州--西安

2数据链路层互联设备之间传送和识别数据帧每个站点之间做飞机还是火车....
1物理层界定连接器和网线的规格相当于修路

OSI 七层网络模型既复杂又不实用 , 所以没有落地实现.

实现组件网络时 , 只是已 OSI 七层模型设计中的部分分层 , 即以下 TCP/IP五层(或四层) 模型来实现.


TCP/IP 五层模型

TCP/IP 是一组协议的代码词 , 它还包括许多协议 , 组成了 TCP/IP 协议簇.

TCP/IP 通信协议采用了五层的层级结构 , 每一层都呼叫它的下一层所提供的的网络来完成自己的需求.

由于物理层我们考虑的较少. 因此很多时候也可以称为 TCP/IP 四层模型.


网络分层对应

两台计算机通过 TCP/IP 通讯的过程如下:


2.6 封装和分用

下图为数据封装的过程:

 例如: 我们用QQ 给好友发送 hello 这个字符串.

 


 下图为数据分用过程:

精彩评论(0)

0 0 举报