十二.linux网络编程之网络通信相关概述

文档:十二.linux网络编程之网络通信相关概述...
链接:http://note.youdao.com/noteshare?id=183c1dffb25c93efeb79b68611fa10f4&sub=9A186925C22A49CF933350A85217C078

一.网络通信概述

1、从进程间通信说起:

网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。

 

2、网络通信的层次

(1)硬件部分:网卡

(2)操作系统底层:网卡驱动

(3)操作系统API:socket接口

(4)应用层:低级(直接基于socket接口编程)

(5)应用层:高级(基于网络通信应用框架库)

(6)应用层:更高级(http、网络控件等)

3、本部分学习方法

(1)重点1:掌握网络通信的架构层次和基本原理

(2)重点2:掌握socket及其相关函数的使用

(3)重点3:掌握服务器和客户端程序通信的方法

 

二.网络通信基础知识1

1、OSI 7层网络模型

(1)7层名字和顺序要记住,有时候笔试题目经常遇到。

十二.linux网络编程之网络通信相关概述_第1张图片

层次

说明

功能/协议

应用层

应用程序及借口,类似于公司的老板

提供应用程序的借口FTP telnet http pop3等

表示层

对数据进行转换,加密和压缩

将上层的数据进行转换和编译压缩为标准的文件,如jpg,gif,ascii码等

会话层

建立,管理和终止会话

 

传输层

提供可靠的端到端的报文传输和差错控制,实质上就是负责建立连接的

TCP UDP 建立可靠和非可靠连接将上层的数据进行分段处理

网络层

将分组从源端传送到目的端,提供网络互联

实质上就是提供路由寻址(IP协议)将上层分段的数据进行打包

数据链路层

将分组数据封装成帧,提供节点到节点的传输

帧就是本地局域网中传输数据的一个单元,负责在局域网内部的点对点的寻址

物理层

在媒体上传输比特

就是底层的链路介质的规范

  • 层与层之间相互独立又互相依靠
  • 上层依赖于下层,下层为上层提供服务

 

2、网卡

(1)计算机上网必备硬件设备,CPU靠网卡来连接外部网络

(2)串转并设备(网卡接收数据实际是串行方式,但他的物理设备是采用并行方式)

(3)数据帧封包和拆包

(4)网络数据缓存和速率适配

 

 

3、集线器(HUB)

(1)信号中继放大,相当于中继器

(2)组成局域网络,用广播方式工作。

(3)注意集线器是不能用来连接外网的

 

4、交换机

(1)包含集线器功能,但更高级

(2)交换机中有地址表,数据包查表后直达目的通信口而不是广播

(3)找不到目的口时广播并学习

 

集线器与交换机的区别??

1.从OSI体系结构来看,集线器属于OSI第一层物理层设备,而交换机属于OSI的第二层数据链路层设备。也就意味着集线器只是对数据的传输起到同步、放大和整形的作用,对数据传输中的短帧、碎片等无法进行有效的处理,不能保证数据传输的完整性和正确性;而交换机不但可以对数据的传输做到同步、放大和整形,而且可以过虑短帧、碎片等。 

2.从工作方式来看,集线器是一种广播模式,也就是说集线器的某个端口工作的时候,其他所有端口都能够收听到信息,容易产生广播风暴,当网络较大时网络性能会受到很大的影响。而交换机就能够避免这种现象,当交换机工作的事后,只有发出请求的端口和目的端口之间相互相应而不影响其它端口,因此交换机就能够隔离冲突与病有效的抑制广播风暴的产生。 

 

5、路由器

(1)路由器相当于有2个网卡,一个对内做网关、一个对外做节点。

(2)路由器的主要功能是为经过路由器的每个数据包寻找一条最佳路径(路由)并转发出去。其实就是局域网内电脑要发到外网的数据包,和外网回复给局域网内电脑的数据包。

(3)路由器对内管理子网(局域网),可以在路由器中设置子网的网段,设置有线端口的IP地址,设置dhcp功能等,因此局域网的IP地址是路由器决定的。

 

 

三.网络通信基础知识2

1、DNS(Domain Name Service 域名服务)

(1)DNS是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络。

它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。

十二.linux网络编程之网络通信相关概述_第2张图片

(2)我们访问一个网站的流程是:先使用IP地址(譬如谷歌的DNS服务器IP地址为8.8.8.8)访问DNS服务器(DNS服务器不能是域名,只能是直接的IP地址),查询我们要访问的域名的IP地址,然后再使用该IP地址访问我们真正要访问的网站。这个过程被浏览器封装屏蔽,其中使用的就是DNS协议。

 

2、DHCP(dynamic host configuration protocl,动态主机配置协议)

(1)每台计算机都需要一个IP地址,且局域网内各电脑IP地址不能重复,否则会地址冲突。

(2)计算机的IP地址可以静态设定,也可以动态分配

(3)动态分配是局域网内的DHCP服务器来协调的,很多设备都能提供DHCP功能,譬如路由器。

(4)动态分配的优势:方便接入和断开、有限的IP地址得到充分利用

 

3、NAT(network address translation,网络地址转换协议)

(1)IP地址分为公网IP(internet范围内唯一的IP地址)和私网IP(内网IP),局域网内的电脑使用的都是私网IP(常用的就是192.168.1.xx)

(2)网络通信的数据包中包含有目的地址的IP地址

(3)当局域网中的主机要发送数据包给外网时,路由器要负责将数据包头中的局域网主机的内网IP替换为当前局域网的对外外网IP。这个过程就叫NAT。

(4)NAT的作用是缓解IPv4的IP地址不够用问题,但只是类似于打补丁的形式,最终的解决方案还是要靠IPv6。

(5)NAT穿透简介

P2P下载:点对点下载(迅雷)

在NAT上打洞,借助服务器去连接两个局域网,令两台内网电脑相连的技术就是NAT技术

 

 

4.IP地址分类(IPv4)

  • (1)现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址。
  • (2)为了便于寻址以及层次化构造网络,每个IP地址中32位实际包含2部分,分别为:网络地址和主机地址
  • (3)IP地址根据网络地址的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。 
  • A类IP地址 

一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。 

  • B类IP地址 

一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。 

  • C类IP地址 

一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。 

  • D类地址用于多点广播(Multicast)。 

D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 

  • E类IP地址 

以“llll0”开始,为将来使用保留。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ARM+Linux探索之旅,linux,网络,OSI模型)