一、网络体系结构

1、OSI模型和TCP/IP 模型

网络体系结构指的是网络的分层结构以及每层使用的协议的集合。其中最著名的就是OSI协议参考模型,他是基于国际标准化组织(OSI)的建议发展起来的。它分为7个层次:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。

这个7层的协议模型规定的非常细致和完善,但在实际中没有被广泛的使用,其中最重要的原因之一就是它过于复杂。尽管如此,它仍是此后很多协议模型的基础。与此相区别的TCP/IP模型将OSI 的7层协议模型简化为4层,从而更有利于实现和高效通信。

TCP/IP 参考模型和OSI参考模型的对应关系如下:

下面具体讲解各层在TCP/IP 整体架构中的作用。

1)网络接口层

网络接口层(Network Interface Layer)是TCP/IP的最底层,负责将二进制流转化为数据帧,并进行数据帧的发送和接收。数据帧是网络传输的基本单元;

2)网络层

网络层(Internet Layer)负责在主机之间的通信中选择数据包的传输路径,即路由。当网络层接收到传输层的请求后,传输某个具有目的地址信息的分组。该层把分组封装在IP数据包中,填入数据包的首部,使用路由算法来确定是直接交付数据包,还是把它传递给路由器,最后把数据包交给适当的网络接口进行传输。

网络层还要负责处理传入的数据包,检验其有效性,使用路由算法来决定应对该数据包进行本地处理还是应该转发。

如果数据包的目的机处于本机所在的网络,该层软件就回去出数据包的首部,再选择适当的传输层协议来处理这个分组。最后,网络层还要根据需要发出和接手ICMP(Internet控制报文协议)差错和控制报文。

3)传输层

传输层(Transport Layer)负责实现应用程序之间的通信服务,这种通信又叫做端到端通信。传输层要系统地管理信息的流动,还要提供可靠的传输服务,以确保数据到达无差错、无乱序。为了达到这个目的,传输层协议软件要进行协商,让接收方会送确认信息及让发送方重发丢失的分组。传输层协议软件把要传输的数据流分为分组,把每个分组连同目的地址交给网络层去发送。

4)应用层

应用层(Application Layer)是分层模型的最高层。应用程序使用相应的应用层协议,把封装好的数据提交个传输层或是从传输层接收数据并处理。

2、TCP/IP协议

      TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。 对普通用户来说,并不需要了解网络协议的整个结构,仅需了解IP的地址格式,即可与世界各地进行网络通信。

TCP/IP协议通信模型

TCP/IP结构

3、TCP和UDP

1)TCP

TCP向应用层提供可靠的面向链接的数据流传输服务。它能提供可靠性通信(数据无误、数据无丢失、数据无失序、数据无重复到达)。

通过源/目的的IP可以唯一地区分网络中两个设备,再通过源/目的的端口可以唯一地区分网络中两个通信的应用程序。

三次握手协议

TCP会话通过三次握手来初始化。三次握手的目标是使数据段的发送和接收同步。同时也向其他主机表明其一次可接收的数据量(窗口大小),并建立逻辑连接。这三次握手的过程可以简述如下:  

●源主机发送一个同步标志位(SYN)置1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值。  

●目标主机发回确认数据段,此段中的同步标志位(SYN)同样被置1,且确认标志位(ACK)也置1,同时在确认序号字段表明目标主机期待收到源主机下一个数据段的序号(即表明前一个数据段已收到并且没有错误)。此外,此段中还包含目标主机的段初始序号。  

●源主机再回送一个数据段,同样带有递增的发送序号和确认序号。  
  至此为止,TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。

2)UDP

     UDP即用户数据报协议,是一种面向无连接的不可靠传输协议,具有资源消耗少、处理速度快的特点。

适用情况:

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

流媒体等网络多媒体服务中通常会采用UDP方式进行实时数据传输;

4、IP地址

IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

1)IP地址类型

公有地址

公有地址(Public address)由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。

私有地址

私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
以下列出留用的内部私有地址

A类 10.0.0.0--10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255

2)IP地址分类

初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。
其中A、B、C3类(如下表格)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。

类别 最大网络数 IP地址范围 最大主机数 私有IP地址范围
A 126(2^7-2) 0.0.0.0-127.255.255.255 16777214 10.0.0.0-10.255.255.255
B 16384(2^14) 128.0.0.0-191.255.255.255 65534 172.16.0.0-172.31.255.255
C 2097152(2^21) 192.0.0.0-223.255.255.255 254 192.168.0.0-192.168.255.255


A类IP地址

一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。
A类IP地址 地址范围1.0.0.0到127.255.255.255[1]  (二进制表示为:00000001 00000000 00000000 00000000 - 01111110 11111111 11111111 11111111)。最后一个是广播地址。
A类IP地址的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777214台。

B类IP地址

一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。
B类IP地址地址范围128.0.0.0-191.255.255.255[3]  (二进制表示为:10000000 00000000 00000000 00000000----10111111 11111111 11111111 11111111)。 最后一个是广播地址。
B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台。

C类IP地址

一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。
C类IP地址范围192.0.0.0-223.255.255.255[3]  (二进制表示为: 11000000 00000000 00000000 00000000 - 11011111 11111111 11111111 11111111)。
C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台

Linux 系统应用编程——网络编程(基础篇)相关推荐

  1. Linux系统下网卡网络配置基础

    Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们.除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命 ...

  2. Linux操作系统下C语言网络编程(全文23475字,包含了Linux系统下所有网络编程的知识点,附程序代码)

    一.简介 如今网络应用随处可见,web.http.email 等这些都是网络应用程序,他们都有着基于相同的基本编程模型,有着相似的整体逻辑结构,并且还有着相同的编程接口.我们需要了解基本的客户端-服务 ...

  3. 【嵌入式Linux系统开发】网络编程

    文章目录 1.基本概念 1.1 OSI模型 1.2 常用命令 1.3 网络地址 1.4 IP设置项 1.5 端口 2.TCP/IP协议 2.1 整体架构概述 2.2 IP协议 2.3 IP构成 2.4 ...

  4. 关于Linux系统学习心得总结(基础篇)

    关于Linux系统学习心得总结 1,什么是Linux系统 简单来说,Linux就是一个操作系统 Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户.多任务.支持多线程和多CPU的操作 ...

  5. 入门Linux系统编程--网络编程

    文章目录 一.网络编程 1.socket服务端代码实现(无连接客户端) 6.socket服务端代码实现(连接客户端) 7.socket客户端代码实现 8.实现双方聊天 9.多方消息收发 二.往期文章 ...

  6. java 编程原理_Java网络编程 -- 网络编程基础原理

    Hello,今天记录下 Java网络编程 --> 网络编程基础原理. 一起学习,一起进步.继续沉淀,慢慢强大.希望这文章对您有帮助.若有写的不好的地方,欢迎评论给建议哈! 初写博客不久,我是杨展 ...

  7. 少儿创意学编程(Scratch基础篇):第5课——绘画板

    <少儿创意学编程(Scratch基础篇)>,参考了英国公益组织发起的"code club(代码俱乐部)"--少儿免费学编程活动.愿为中国的少儿创意编程教育尽微薄之力,对 ...

  8. 少儿创意学编程(Scratch基础篇):第1课——摇滚乐队

    <少儿创意学编程(Scratch基础篇)>,参考了英国公益组织发起的"code club(代码俱乐部)"--少儿免费学编程活动.愿为中国的少儿创意编程教育尽微薄之力,对 ...

  9. 少儿创意学编程(Scratch基础篇):第6课——赛艇比赛

    <少儿创意学编程(Scratch基础篇)>,参考了英国公益组织发起的"code club(代码俱乐部)"--少儿免费学编程活动.愿为中国的少儿创意编程教育尽微薄之力,对 ...

  10. Linux平台Makefile文件的编写基础篇和GCC参数详解

    问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...

最新文章

  1. 洛谷P4199 万径人踪灭(manacher+FFT)
  2. 游戏维护关闭服务器,游戏服务器正在维护中
  3. MySQL create table as与create table like对比
  4. 幂等和高并发在电商系统中的使用
  5. C和C++之用extern “C“实现它们之间的互调
  6. 14005.xilinx移植spi版本flash
  7. Redmi K20系列上市首月销量破100万台
  8. Python的collections模块中namedtuple结构使用示例
  9. BZOJ 4552 [Tjoi2016Heoi2016]排序 ——线段树 二分答案
  10. 微服务 API 网关建设,实践经验分享!
  11. 脚本的使用与修改Tampermonkey(油猴)
  12. Android显示——一帧的渲染过程(VSYNC)
  13. 罗米欧与朱丽叶(徐志摩)
  14. 基于AntV G2实现一个通用可视化Vue插件
  15. 计算机视觉(角点检测)- 2 - Shi-Tomasi 角点检测
  16. Golang位运算符
  17. java安卓怎么开发一个新闻app,一个基于Android系统的新闻客户端(一)
  18. cad画不规则实体_cad画不规则曲线的方法步骤图
  19. 微型计算机原理和接口技术试卷,2017-1微机原理和接口技术试卷A(答案)-.doc
  20. Mac下安装Hadoop

热门文章

  1. libinject的编译
  2. Sybase用户登录以后的自动运行脚本
  3. 2---多线程文件读写
  4. VMworld 2010旧金山胜利闭幕
  5. [导入]WINRAR 命令行语法[转载]
  6. 673. 最长递增子序列的个数
  7. javascript创建类_如何在10分钟内使用JavaScript创建费用管理器
  8. akka 简介_Akka HTTP路由简介
  9. 域控dns无法解析域控_域注册商,DNS和托管
  10. #loj 3058 [HNOI2019] 白兔之舞