一、网络协议模型

1、ISO/OSI 网络协议模型

什么是计算机网路?

计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

什么是网络协议?

网络协议是一种特殊的软件,是计算机网络实现其功能的最基本的机制。网络协议的本质就是规则,即各种硬件和软件必须遵循的共同守则。网络协议并不是一套单独的软件,它融合于其它所有的软件甚至硬件系统中,因此可以说协议在网络中无所不在。

什么是协议栈?

为了减少网络设计的复杂性,绝大多数网络采用分层设计的方法。所谓分层设计,就是按照信息的流动过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。各层的协议和接口统称为协议栈。

什么是 ISO/OSI 网络协议模型?

描述计算机网络各协议层的一般方法是采用国际标准化组织(International Standardization Organization, ISO)的计算机通信开放系统互连(Open System Interconnection, OSI)模型,简称 ISO/OSI 网络协议模型。

2、TCP/IP 协议族

TCP/IP 不是个单一的网络协议,而是由一组具有层次关系的网络协议组成的协议家族,简称 TCP/IP 协议族。

    — TCP:传输控制协议,面向连接,可靠的全双工的字节流。
    — UDP:用户数据报协议,无连接,不如 TCP 可靠但速度快。
    — ICMP:网际控制消息协议,处理路由器和主机间的错误和控制消息。
    — IGMP:网际组管理协议,用于多播。
    — IPv4:网际协议版本 4,使用 32 位地址,为 TCP、UDP、ICMP 和 IGMP 提供递送分组服务。
    — IPv6:网际协议版本 6,使用 128 位地址,为 TCP、UDP 和 ICMPv6 提供递送分组服务。
    — ARP:地址解析协议,把 IPv4 地址映射到硬件地址。
    — RARP:逆地址解析协议,把硬件地址映射到 IPv4 地址。
    — ICMPv6:网际控制消息协议版本 6,总和了 ICMP、IGMP 和 ARP 的功能。
    — BPF:BSD 分组过滤器,为应用程序提供访问数据链路层的接口,由源自 BSD 的系统内核提供。
    — DLPI:数据链路提供者接口,为应用程序提供访问数据链路层的接口,由源自 SVR4 的系统内核提供。
通常所说的 TCP、UDP 和 ICMP 等协议都是工作在 IP 协议之上的,IP 协议作为它们的基础协议为其提供服务支撑。
扩展:IPv6协议原理以及跟IPv4的差别

3、TCP/IP 与 ISO/OSI 模型

在 ISO/OSI 网络协议模型的基础上,TCP/IP 协议做了部分合并和简化,同时将网络编程的接口设定在传输层与会话层之间,这样做的理由有两点。
第一、上三层与应用程序的业务逻辑(如数据包的组织与解析、收发的实际与次序等)密切相关,而与具体的通信细节(如收发分组、计算验证校验和、丢包重传等)关系不大;下四层主要处理通信细节而与具体应用的业务逻辑无关。
第二、上三层通常构成用户进程,而下四层通常是系统内核的一部分。

二、消息与地址

1、消息包与消息流

应用程序负责组织的通常都是业务相关的数据内容,而要想把这些数据内容通过网络发送出去,就要将其自上向下地压入协议栈,每经历一个协议层,就会对数据做一层封包,每一层输出的封包都是下一层输入的内容,消息包沿着协议栈的运动形成了消息流。
当从网络上接收数据时,过程刚好相反,消息包自下向上地流经协议栈,每经历一个协议层,就会对输入的数据解一层封包,经过层层解包以后,应用程序最终得到的将只是与业务相关的数据内容。

2、IP 地址

什么是 IP 地址?

IP 地址,全称网际协议地址(Internet Protocol Address),是 IP 协议提供的一种统一的地址格式,为互联网上的每个网络和每台主机分配一个逻辑地址,借以消除物理地址差异所带来的影响。

IP地址如何表示?

在计算机内部,IP 地址用一个 32 位无符号整数表示,如:0x01020304。如无特别说明,我们只讨论 IPv4 的情况。
人们更习惯使用点分十进制字符串表示,如:1.2.3.4。字符串形式的从左到右,对应整数形式的从高字节到低字节。注意这里所说的高低指的是数位高低而非地址高低。

查看 IP 地址的基本命令

Windows系统操作系统:ipconfig    ipconfig/all
Unix/Linux操作系统:ifconfig    /sbin/ifconfig

什么是 IP 地址分级?

    — A 级地址:以 0 为首的 8 位网络地址 +24 位本地地址
    — B 级地址:以 10 为首的 16 位网络地址 +16 位本地地址
    — C 级地址:以110 为首的 24 位网络地址 +8 位本地地址
    — D 级地址:以 1110 为首的 32 位多播地址
例如:某台计算机的 IP 地址:192.168.182.48,写成整数形式:11000000 10101000 10110110 00110000
C 级地址,网络地址:192.168.182.0,本地地址:48.
工具:进制转换 - 在线工具

什么是子网掩码?

一般与IP地址搭配使用,主要用于指定一个IP地址中具体的网络地址和主机地址。也就是说判断两个IP地址是否在同一个子网中。
IP 地址 & 子网掩码 = 网络地址
192.168.182.48 & 255.255.255.0 = 192.168.182.0

UNIX再学习 -- 网络与网络协议相关推荐

  1. UNIX再学习 -- 进程关系

    APUE 第 10 章信号讲完,回过头来看一下第 9 章的进程关系.终端登录和网络登录部分,我们只讲 Linux 系统的. 一.终端登录 我记得我们讲 root 登录设置时有提到,参看:C语言再学习 ...

  2. UNIX再学习 -- 内存管理

    C 语言部分,就一再的讲内存管理,参看:C语言再学习 -- 再论内存管理  UNIX.Linux 部分还是要讲,足见其重要. 一.存储空间布局 1.我们先了解一个命令 size,继而引出我们今天要讲的 ...

  3. UNIX再学习 -- 文件描述符

    在 UNIX/Linux 系统中,一切皆文件,这句话想必都有听过.对于文件的操作几乎适用于所有的设备,这也就看出了文件操作的重要性了.在C语言再学习部分有讲过标准I/O文件操作,参看:C语言再学习 - ...

  4. UNIX再学习 -- 进程间通信之管道

    一.进程间通信概念 首先,需要了解一下什么是进程间通信. 进程之间的相互通信的技术,称为进程间通信(InterProcess Communication,IPC). 下图列出 4 种实现所支持的不同形 ...

  5. UNIX再学习 -- 记录锁

    APUE第 3 章,参看:UNIX再学习 -- 文件I/O  fcntl 函数它的记录锁功能我们当时没讲.接下来就详细说明下. 一.读写冲突 1.如果两个或两个以上的进程同时向一个文件的某个特定的区域 ...

  6. UNIX再学习 -- 守护进程(转)

    参看:守护进程 一.什么是守护进程 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程.它是一个生存期较长的进程,通常独立于控制 ...

  7. UNIX再学习 -- 线程

    终于要讲到线程部分,线程和进程让人够头痛的内容. 一.线程概念 老样子,我们还是按我们讲进程时的方式说起,参看:UNIX再学习 -- 进程环境 首先需要了解下,什么是线程. Linux 下的线程,可能 ...

  8. UNIX再学习 -- 函数abort

    abort 函数之前有讲过的,参看:C语言再学习 -- 关键字return和exit ()函数 然后我们在讲 8 中进程终止时,也说过.参看:UNIX再学习 -- exit 和 wait 系列函数 下 ...

  9. UNIX再学习 -- 信号

    终于讲到信号部分,很多比较重要的应用程序都需处理信号.第 9 章需要先了解信号机制再看,所以先跳过不讲.现在开始详解信号. 一.信号概念 信号是提供异步事件处理机制的软件中断. 这些异步事件可能来自硬 ...

  10. UNIX再学习 -- 用户 ID 和组 ID

    用户 ID和组 ID 的内容已经在好几章中出现过了.之前都没有讲到,现在放到一起总结. 一.用户 ID 和 组 ID 回顾 1.我们在APUE 第 4.6.8 章,都有涉及到. 其中我们用到的地方: ...

最新文章

  1. CUDA 并行计算优化策略总结
  2. 2019年上半年收集到的人工智能强化学习干货文章
  3. editplus配置 linux shell 语法高亮 自动补全
  4. java 上传视频并播放_java实现视频上传和播放..doc
  5. hadoop入门-在windows上编译x64位hadoop
  6. 京东「卖家日志」系统的构建 | 流式计算日志系统应用实践
  7. Java基础IO流(五)RandomAccessFile
  8. python是面向过程的吗_Python开发是面向过程、函数还是对象?
  9. java 学习代码库_java 学习4
  10. curl的安装与简单使用
  11. Android 解决导入多个module时jar包冲突
  12. (07)VHDL实现闪灯
  13. 实体框架(Entity Framework)简介
  14. linux CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙
  15. 无人机通信与网络学习笔记
  16. 支付宝第三方登录具体实现
  17. java导出csv文件,使用Excel打开中文乱码
  18. 宿主机无法访问docker容器的坑
  19. tex live iso linux,TeX Live安装教程
  20. 计算机网络——基本认识

热门文章

  1. android设置系统横屏方案
  2. K-Means 基本原理
  3. JavaScript中的对象与函数(一)
  4. HDU 1108.最小公倍数-辗转相除法
  5. 同域下跨文档通信iframe和window.open
  6. ADO.NET Entity Framework
  7. 统计学习:线性回归分析(1)
  8. iptables防火墙详解
  9. VTK一个面向对象的可视化类库
  10. libSVM笔记之(一)在matlab环境下安装配置libSVM