当前位置: 首页 > news >正文

Linux的网络基础

目录

1、计算机的网络背景

2、协议

2.1 OSI七层模型和TCP/IP五层模型

2.2. TCP/IP协议与OS

3、网络通信

3.1 局域网通信

3.1.1 MAC地址 && Port端口号

3.1.2 以太网通信

3.1.3 同一个网段内的两台主机的通信

3.2 跨网络通信

3.2.1 IP地址

3.2.2 跨网络通信

4、Socket编程预备

4.1 理解Socket

4.2 TCP && UDP

4.3 网络字节序

4.4 Socket编程接口


1、计算机的网络背景

  • 计算机是人类的工具,人之间需要协作,所以计算机之间需要协作需要网络传输数据
  • 网络的产生局部 -> 整体。局域网->广域网。

2、协议

  • 协议:一种约定,方便快速形成共识减少通信的成本。从软件到硬件,都有各自的协议。
  • 协议分层,在设计上为了更好的进行模块化解耦合,使维护成本更低

2.1 OSI七层模型和TCP/IP五层模型

  • ISO(国际标准化组织)提出OSI七层模型理论标准/参考模型),而现实世界广泛应用 TCP/IP五层模型(事实上的工业标准)。
  • 每层都有多种协议
  • 作者自此以TCP/IP的四层模型(不涉及物理层(硬件))的TCP/IP协议开始讲解。为什么叫TCP/IP协议?是因为TCP协议和IP协议是核心。

2.2. TCP/IP协议与OS

  • 网络是OS的一部分。OS的分层,注定了网络协议的分层。
  • 操作系统可以不同,但是网络协议必须相同(每层遵循相同的网络协议)。
  • 网络通信本质进程间通信。因为主机上运行的是进程,是进程间收发数据,实现这一过程的核心链路就是"进程->OS->网络"。

3、网络通信

3.1 局域网通信

3.1.1 MAC地址 && Port端口号
  • 之前我们说了,网络通信本质进程间通信,那么怎么定位进程?

  • MAC地址(全球唯一的硬件标识),负责链路层相邻硬件识别;长度为48位,即6个字节,一般用16进制数字加上冒号的形式来表示,例如: 08:00:27:03:fb:19。

  • Port(端口号,主机内唯一的进程标识),负责跨主机定位进程。0-1023:知名端口号,HTTP,FTP,SSH等这些广为使用的应用层协议,他们的端口号都是固定的。1024-65535:操作系统动态分配的端口号,客户端程序的端口号,就是由操作系统从这个范围分配的。

3.1.2 以太网通信
  • 因为网络的发展是从局部->整体的,现在留下来的局域网主要有:以太网,令牌环网,无线LAN。以下以 以太网进行讲解。

  • 局域网中,主机之间可以直接通信

  • 以太网中,任何时刻只允许一台机器向网络中发送数据,且在该以太网中的任何主机都能收到,只有目标主机会处理,其他主机会丢弃。

  • 如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞。

  • 所有发送数据的主机要进行碰撞检测(自己能收到,进行检测)和碰撞避免。

  • 没有交换机的情况下,一个以太网就是一个碰撞域。

  • 局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标 MAC 地址判定

3.1.3 同一个网段内的两台主机的通信

  • 所以,称网络协议栈
  • 每一层的报文 = 该层报头 + 有效载荷
  • 入栈是对数据进行封装(添加报头),出栈是对数据进行解包(分开报头有效载荷)+分用(报头有效载荷分别使用对应的协议)。

3.2 跨网络通信

3.2.1 IP地址
  • IP协议有两个版本,IPv4IPv6,我们之后提到IP协议,默认都是指IPv4
  • IP地址是在IP协议中,用来标识网络中不同主机的地址
  • 对于IPv4来说,IP地址是一个4字节,32位的整数。我们通常也使用"点分十进制"的字符串表示IP地址,例如192.168.0.1,用点分割的每一个数字表示一个字节,范围是0-255。
3.2.2 跨网络通信
  • 跨网段的主机的数据传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器

  • IP地址在整个路由过程中,一直不变(目前这样理解,后面再修正)。MAC地址一直在变
  • 目的IP地址是一种长远目标MAC地址下一阶段目标目的IP地址路径选择的重要依据MAC地址局域网转发的重要依据

  • 提供网络虚拟层,让世界的所有网络都是IP网络,屏蔽最底层网络的差异

4、Socket编程预备

4.1 理解Socket

  • Socket = IP(主机标识)+Port(进程标识)+ 操作系统通信接口,是进程实现跨主机通信的工具

  • Socket 的目标是 “定位进程”,IP+Port 已经能实现;MAC 是 “定位硬件”,属于更低层的逻辑,不需要放进 Socket。

4.2 TCP && UDP

  • TCP,UDP都是传输层协议,这里先进行了解。
特性TCP(可靠,简单)UDP(不可靠,简单)
连接有连接(先握手)无连接(直接发)
可靠性

可靠 (保证数据不丢、不错、顺序正确)

不可靠 (不保证送达,可能丢失或乱序)
速度(因为要保证可靠)(因为不管那么多)
常用场景网页、邮件、文件传输视频通话、在线游戏、直播

4.3 网络字节序

  • 有大端机和小端机之分,小端低位字节低地址。"低低小端"。大端:低位字节放高地址。
  • 规定:网络中的数据都是按大端存储。

4.4 Socket编程接口

 C// 创建 socket 文件描述符 (TCP/UDP, 客户端 + 服务器)int socket(int domain, int type, int protocol);// 绑定端口号 (TCP/UDP, 服务器)int bind(int socket, const struct sockaddr *address,socklen_t address_len);// 开始监听socket (TCP, 服务器)int listen(int socket, int backlog);// 接收请求 (TCP, 服务器)int accept(int socket, struct sockaddr* address,socklen_t* address_len);// 建立连接 (TCP, 客户端)int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

http://www.dtcms.com/a/410320.html

相关文章:

  • 福田网站建设课程考试wordpress页面链接404
  • I2C EEPROM存储影响到Rx response
  • qt使用opencv的imread读取图像为空
  • 单片机中用printf输出函数的地址
  • 做视频用的网站铁岭 开原网站建设
  • 4. ChatClient 的初始,快速使用上手
  • 【编号525】1969-2008北京五环路历年道路路网数据
  • 淘宝团购上线:本地生活的“两种解法”
  • 直播一级a做爰片免费网站学校做网站方案
  • Syslog和Windows事件日志分析工具
  • request库的详解
  • 如何做一家类似携程的网站南昌专业的网站建设公司
  • C# WPF实现ComboBox实时搜索与数据绑定
  • eBay自养号系统构建指南:打造安全稳定的测评采购环境
  • Java读取Excel图片技术详解:悬浮式与嵌入式图片的三种实现方案(支持WPS嵌入和Office Excel嵌入)
  • 【LLIE技术专题】 SCI代码讲解
  • QT5绘图和数据可视化的CustomPlot C++组件安装及使用
  • 了解ddp和fsdp
  • Linux的POSIX信号量和生产消费模型的环形队列实现
  • 如何用家庭电脑做网站wordpress无法移除旧插件.
  • 网络公司手机网站平台营销型网站
  • Python 将 HTML 转换为纯文本 TXT (HTML 文本提取)
  • glibc pthread_mutex_lock/unlock futex 互斥锁的实现
  • 做网站怎么做小图标百度怎么精准搜索
  • ASP.NET Razor VB 变量
  • Linux系统之----POSIX信号量
  • 让人做网站 需要准备什么软件查看网站dns服务器
  • LangChain第三页【操作指南】_【如何缓存对话模型响应】翻译完成
  • 移动硬盘上的文件消失了?以下是Mac电脑解决方法
  • AWS Route 53 详解:不只是 DNS,还能做智能流量调度