网络编程——网络基础知识

目录

  • 一、网络历史两个重要名词
    • [1.1 阿帕网](#1.1 阿帕网)
    • [1.2 TCP/IP协议](#1.2 TCP/IP协议)
  • 二、局域网和广域网
  • 三、IP地址
    • [3.1 基本概念](#3.1 基本概念)
    • [3.2 划分(IPV4)](#3.2 划分(IPV4))
    • [3.3 特殊IP地址](#3.3 特殊IP地址)
    • [3.4 子网掩码](#3.4 子网掩码)
    • [3.5 重新组网](#3.5 重新组网)
  • 四、网络模型
    • [4.1 网络的体系结构:](#4.1 网络的体系结构:)
    • [4.2 OSI与TCP/IP模型](#4.2 OSI与TCP/IP模型)
      • [4.2.1 OSI模型](#4.2.1 OSI模型)
      • [4.2.2 TCP/IP模型](#4.2.2 TCP/IP模型)
      • [4.2.3 OSI和TCP/IP模型对应关系](#4.2.3 OSI和TCP/IP模型对应关系)
      • [4.2.3 常见网络协议](#4.2.3 常见网络协议)
    • [4.3 UDP和TCP](#4.3 UDP和TCP)
      • [4.3.1 TCP(即传输控制协议)](#4.3.1 TCP(即传输控制协议))
      • [4.3.2 UDP(用户数据报协议 )](#4.3.2 UDP(用户数据报协议 ))

一、网络历史两个重要名词

1.1 阿帕网

阿帕网是什么→🔗阿帕网

阿帕网的特点:

  • 没有纠错功能
  • 不能互联不同类型的计算机和不同类型的操作系统。

1.2 TCP/IP协议

什么是TCP/IP协议→🔗TCP/IP协议

  • 用来检测网络传输中差错的传输控制协议TCP
  • 专门负责对不同网络进行互联的互联网协议IP(网际协议)

二、局域网和广域网

局域网(LAN):本地的网络,只能实现小范围短距离的网络通信
广域网(Wan):外网,长距离的传输

三、IP地址

3.1 基本概念

  • IP地址是Internet中主机的标识
  • Internet中的主机要与别的机器通信必须具有一个IP地址
  • IP地址为32位(IPv4)或者128位(IPv6)
  • 表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。

3.2 划分(IPV4)

二级划分(ip=网络号+主机号)

  • 网络号:表示是否在一个网段内(局域网)
  • 主机号:标识在本网段内的ID,同一局域网不能重复

由这种划分方式可以将ip分成ABCDE五类,分类依据就是网络号的大小以及网络号的前几位👇:

3.3 特殊IP地址

  • 0.0.0.0
    自动获取IP,指的是本机上的所有的IP地址
  • 127.0.0.1
    回环地址/环路地址,所有发往该类地址的数据包都应该被loop back
  • 网络地址&广播地址
    • 网络地址:每一个网段主机号全为 0 的地址是网络地址
    • 广播地址:每一网段主机号全为1是广播地址
  • 主机号为1 的地址是默认网关(如192.168.1.1)
  • 255.255.255.255
    全网广播地址

3.4 子网掩码

  • 子网掩码:是一个32位的整数,作用是将某一个IP划分成网络地址和主机地址;
  • 子网掩码长度是和IP地址长度完全一样;
  • 网络号全为1,主机号全为0;

ABC类IP的子网掩码:

c 复制代码
 A  255.0.0.0
 B  255.255.0.0
 C  255.255.255.0

子网掩码的作用:计算网段和主机ID

  • ip & 子网掩码 = 网络号
  • ip &(~子网掩码) = 主机ID

3.5 重新组网

原因:例如想要1000台计算机接入同一局域网,且不能浪费IP。C类ip同一网段的主机号只有256-2=254个可以用,不够,而B类IP的主机号有65536-2=65534个可以分配,又太多。这时需要拿出B类IP的部分主机号作为子网号,只留后面的10位作为主机号。

三级地址组成:ip=网络号+子网号+主机号

网络号+子网号 → 网段(网络地址)

四、网络模型

4.1 网络的体系结构:

  • 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
  • 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
  • 网络体系结构即指网络的层次结构和每层所使用协议的集合
  • 两类非常重要的体系结构:OSI与TCP/IP

4.2 OSI与TCP/IP模型

4.2.1 OSI模型

  • OSI模型是一个理想化的模型,尚有未完整的实现
  • OSI模型共有七层
  • OSI现阶段只用作教学和理论研究

划分

  1. 物理层:传输的是bit流(0与1一样的数据),物理信号,没有格式
  2. 链路层:格式变为帧(把数据分成包,一帧一帧的数据进行发送)
  3. 网络层:路由器中是有算法的,ip,(主机到主机)(路由的转发)
  4. 传输层:端口号,数据传输到具体那个进程程序(端到端)
  5. 会话层:通信管理,负责建立或者断开通信连接
  6. 表示层:确保一个系统应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据加密,解密;
  7. 应用层:指定特定应用的协议,文件传输,文件管理,电子邮件等。

4.2.2 TCP/IP模型

  1. 网络接口和物理层:屏蔽硬件差异(驱动),向上层提供统一的操作接口。
  2. 网络层:提供端对端的传输,可以理解为通过IP寻址机器。
  3. 传输层:决定数据交给机器的哪个任务(进程)去处理,通过端口寻址
  4. 应用层:应用协议和应用程序的集合

4.2.3 OSI和TCP/IP模型对应关系

4.2.3 常见网络协议

层次 协议
网络接口和物理层: ppp:拨号协议(老式电话线上网方式);ARP:地址解析协议 IP-->MAC;RARP:反向地址转换协议 MAC-->IP
网络层 IP(IPV4/IPV6):网间互连的协议;ICMP:网络控制管理协议,ping命令使用;IGMP:网络分组管理协议,广播和组播使用
传输层 TCP:传输控制协议;UDP:用户数据报协议
应用层 SSH:加密协议;telnet:远程登录协议;FTP:文件传输协议;HTTP:超文本传输协议;DNS:地址解析协议;SMTP/POP3:邮件传输协议

4.3 UDP和TCP

UDP TCP 协议相同点:都存在于传输层

4.3.1 TCP(即传输控制协议)

是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)

适用情况:

1、适合于对传输质量要求较高,以及传输大量数据的通信。

2、在需要可靠数据传输的场合,通常使用TCP协议

3、MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

4.3.2 UDP(用户数据报协议 )

UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输

适用情况:

1、发送小尺寸数据(如对DNS服务器进行IP地址查询时)

2、在接收到数据,给出应答较困难的网络中使用UDP。

3、适合于广播/组播式通信中。

4、MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议

5、流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

相关推荐
筱源源3 分钟前
Kafka-linux环境部署
linux·kafka
EricWang135815 分钟前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
我是谁??17 分钟前
C/C++使用AddressSanitizer检测内存错误
c语言·c++
算法与编程之美42 分钟前
文件的写入与读取
linux·运维·服务器
长弓三石1 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
希言JY1 小时前
C字符串 | 字符串处理函数 | 使用 | 原理 | 实现
c语言·开发语言
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git
午言若1 小时前
C语言比较两个字符串是否相同
c语言
follycat1 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
Amelio_Ming1 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh