当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 学习笔记 > 网络编程基础概念总结

网络编程基础概念总结 时间:2018-08-15      来源:未知

基本概念

【1】基础知识

【2】网络体系结构

(1)OSI开放系统互联模型

(2)TCP/IP协议族的体系结构:

【3】TCP和UDP

【4】Socket

【6】其他概念

【1】基础知识

1)计算机与网络发展的7个阶段

1、批处理(20世纪50年代):是指实现将用户每个数据装入卡带或者磁带。并有计算机按照一

定的顺序读取,是用户所要执行的这些程序和数据能够一并批量得到处理的方式。2、分时系统(20世纪60年代):是指多个终端(包含鼠标、键盘、显示器等输入

输出设备组

成,最初还包括打印机)与一台计算机连接,允许多个用户同时使用一台计算机的

系统。

特性:多路性、独占性、交互性和及时性。

3、计算机之间的通信(20世纪70年代)

4、计算机网络的产生(20世纪80年代)

5、互联网的普及(20世纪90年代)

6、以互联网技术为中心的时代(2000年)

7、从“单纯建立连接”到“安全建立连接”(2010年)

2)早期的ARPAnet使用网络控制协议

(Network Control Protocol,NCP)

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

3)网络体系结构

指网络的层次结构和每层所使用协议的集合

4)通信协议

1、协议:一组控制数据通信的规则。三要素:①语法(包括数据格式、编码及信号电平等)②

语义(包括用于协议和差错处理的控制信息)③时序(包括速度匹配和排

序)。

2、标准:一致同意的规则。分类:①事实上的标准:实际情况或者习惯②合法标准:法律或者

规章制度

3、标准化组织:缓慢发展:ISO:国际标准化组织;ITU-T:国际电联-电信标准

部;ANSI:美

国国家标准化局;IEEE:电气电子工程师协会(主要是以太网、局域网方面

的);

EIA:电子工业协会(物理传输标准、光钎传输)。快速发展:论坛:帧中继

论坛、

ATM论坛;管理机构:FCC 联邦通信委员会。Internet标准:RFC

【2】网络体系结构

(1)OSI开放系统互联模型

1)ISO(国际标准化组织)制定了一个国际标准OSI(开放式通信系统互联参考模型,),对通信系统

进行了标准化。(理想模型,实际只有四层)

2)OSI模型将通信协议中必要的功能分成了7层,每个分层都接收有它下一层所提供的特定

服务,并

且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一

层之间的交互所遵循的约定叫做“协议”。

3)7层通信

1、应用层:指定特定应用的协议(比如发送和接受文件的软件按钮,发送者输入“早上好”并附

上收件人,按下发送按钮,接受者收到信息会将其存储在硬盘或者非易失

存储器

(数据不会因为断电而丢失的一种存储设备)上,这些都是在应用层上

的)。应用

程序:FTP、E-mail、Telnet

2、表示层:设备固有数据格式和网络标准数据格式的转换(接受者和发送者如果使用的邮件客

户端不一样,那么就会出现问题,如何实现用户之间的通信,那么就需要

在表示层

来起作用,使得在不同的客户端上拥有相同的网络格式)。数据格式定

义、数据转

换/加密

3、会话层:通信管理,负责建立或者断开通信连接(发送者一次性发送5份邮件,那么接受者如

何接受,是一次性接受所有的文件然后断开连接还是没接受一次就断开,

然后在此

进行,发送者同理)。建立通信进程的逻辑名字与物理名字之间的联系4、传输层:管理两个节点(互联的网络中断)之间的数据传输。负责可靠传输

(确保数据被可

靠地传送到目标地址)(确保发送者和接受者之间的通信,会话层负责决

定建立连

接和断开连接的时机,而传输层进行实际的建立和断开处理)。差错处

理/恢复,流

量控制,提供可靠的数据传输

5、网络层:地址管理与路由选择,作用:在网络相互连接的环境中,将数据从发送端主机发送

到接受端主机。数据分组、路由选择

6、数据链路层:互连设备之间传送和识别数据帧。数据组成可发送、接收的帧

7、物理层:以“0”、“1”代表的电压的高低、灯光的闪灭。界定连接器和网络的规格。传输物理信

号、接口、信号形式、速率

(2)TCP/IP协议族的体系结构:

1、应用层: TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

2、传输层: TCP,UDP

3、网络层: IP,ICMP,RIP,OSPF,BGP,IGMP 传输单位为分组

4、网络接口与物理层: SLIP,CSLIP,PPP,ARP(解析mac地址),RARP,MTU ISO2110,

IEEE802.1,EEE802.2

备注: IP(Internetworking Protocol)网间协议

TCP(Transmission Control Protocol)传输控制协议

UDP(User Datagram Protocol)用户数据报协议 SMTP(Simple Mail Transfer Protocol)简单邮件传输协议 HTTP(Hypertext Transfer Protocol) 超文本传输协议 FTP(File Transfer Protocol)文件传输协议 ARP(Address Resolution Protocol)地址解析协议

TCP/IP协议是根据OSI模型发展而来的,(实际应用的结构)

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

【3】TCP和UDP

TCPUDP

(Transmission Control Protocol)(User Datagram Protocol)

即传输控制协议用户数据报协议

共同点同为传输层协议

不同点有连接,可靠无连接,不保证可靠

是一种面向连接的传输层协议,它能提供

高可靠性通信是一种面向连接的传输层协 是不可靠的无连接的协议。在数据发送前,因

描述议,它能提供高可靠性通信(即数据无误、为不需要进行连接,所以可以进行高效率的数

数据无丢失、数据无失序、数据无重复到据传输。

达的通信)

发送小尺寸数据(如对DNS服务器进行IP地址

适合于对传输质量要求较高,以及传输大 查询时)在接收到数据,给出应答较困难的网量数据的通信。在需要可靠数据传输的场 络中使用UDP。(如:无线网络)适合于广适用情况 合,通常使用TCP协议QQ等即时通讯软件播/组播式通信中。MSN/QQ/Skype等即时通的用户登录账户管理相关的功能通常采用 讯软件的点对点文本通讯以及音视频通讯通常

TCP协议 采用UDP协议流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时

数据传输

【4】Socket

1)概念:

是一个编程接口

是一种特殊的文件描述符 (everything in Unix is a file)

并不仅限于TCP/IP协议

面向连接 (Transmission Control Protocol - TCP/IP)

无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange

- IPX)

2)socket类型

发送缓冲区16K

接收缓冲区85K(默认)使用getsockopt获取使用setsockopt

设置

3)分类:

1、流式套接字(SOCK_STREAM)

提供了一个面向连接、可靠的数据传输服务,数据无差错、无重

复的发

送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接

收方。

数据被看作是字节流,无长度限制。

--->TCP

2、数据报套接字(SOCK_DGRAM)

提供无连接服务。数据包以独立数据包的形式被发送,不提供无

差错保证,

数据可能丢失或重复,顺序发送,可能乱序接收。

--->支持UDP,也支持其他的传输协议,并非为UDP设计。3、原始套接字(SOCK_RAW)

可以对较低层次协议如IP、ICMP直接访问。

【5】IP地址

1)查看指令: linux:ifconfig windows:ipconfig

2)概念:

IP地址是Internet中主机的唯一标识

IP地址为32位(IPv4)或者128位(IPv6)

每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路

IPV4的表示形式:常用点分十进制形式,如192.168.8.222,最后都会转换为一个32位的无符号整数。

3)IP地址分类(基于IPV4地址的前八位)

A类 0000 0000 - 0111 1111 0.x.x.x - 127.x.x.x

(8bit网络号 24bit主机号)2^24 - 2 (全0和全1不可用)

B类 1000 0000 - 1011 1111 128.x.x.x - 191.x.x.x

(16bit网络号 16bit主机号)2^16 - 2

C类 1100 0000 - 1101 1111 192.x.x.x - 223.x.x.x

(24bit网络号 8bit主机号)2^8 - 2

D类 1110 0000 - 1110 1111 224.x.x.x - 239.x.x.x 表示组播

地址

(不做网络号和主机号的划分)

E类 1111 0000 - 1111 1111 240.x.x.x - 255.x.x.x 属于保留测试

(剩余部分)

127.x.x.x 表示主机地址(本机回环地址)127.0.0.1(不经过网卡,网卡不能够抓取数据包)

192.168.x.x 表示局域网IP地址

0.0.0.0 本机地址自适配,会自动填写网卡对应的IP地址

192.168.8.x

192.168.8.0 表示网段或者网络地址

192.168.8.255 表示广播地址

4)子网掩码:可以表示当前IP地址的最大连接的主机的个数,用于子网划分 mask & IP地址留下的就是网络号(通常情况下 )

~mask & IP地址留下的就是主机号

A类:255.0.0.0 2~242^24

B类:255.255.0.02~16 2^16

C类:255.255.255.02~8 2^8

首先根据网络号进行查找,找到相应的群,然后根据主机号找到对应的具体IP主机。

5)局域网地址:

A类:10.xxx.xxx.xxx

B类:172.16.xxx.xxx ~ 172.31.xxx.xxx

C类:192.168.xxx.xxx

【6】其他概念

1)网关:作内外网隔离(两张网卡)NAT内外网映射

2)DNS:域名解析服务

(114.114.114.114)中国电信域名服务

(223.5.5.5)(223.6.6.6)阿里云域名服务

(8.8.8.8)谷歌域名服务

3)DDNS:动态域名解析服务(花生壳)

第一次域名查询 网关会向域名服务器 查询,之后网关会把IP地址写到自己的DNS映射。

DNS劫持:修改网关对应的DNS映射表,将映射网址修改到其他的钓鱼网站。4)端口号 :(在/etc/services文件内查看已经被占用的端口号)

为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来

区别

端口号一般由IANA (Internet Assigned Numbers Authority) 管理分类:

众所周知端口:1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用)

web服务器(80)

已登记端口:1024~49151 腾讯客户端(8080)

动态或私有端口:49152~65535

一般设置为 6666 7777 8888 9999 10000 10001 TCP和UDP各有一套端口号。

5)字节序

不同类型CPU的主机中,内存存储多字节整数序列有两种方法,称为主机字节序

(HBO):

小端序(little-endian) - 低序字节存储在低地址

将低字节存储在起始地址,称为“Little-Endian”字节序,Intel、AMD等采用的是这种方式;

大端序(big-endian)- 高序字节存储在低地址

将高字节存储在起始地址,称为“Big-Endian”字节序,由ARM、

Motorola等所采用

如何测试主机字节序:

方法1:使用指针

方法2: 使用file命令,file a.out 其中LSB的L代表小端存储

方法3:使用共用体

网络中传输的数据必须按网络字节序,即大端字节序

6)#include

①in_addr_t inet_addr(const char *cp); 将点分十进制IP地址转化为网络字节序的整型数据

②char *inet_ntoa(struct in_addr in); 将网络字节序的整型数据转化为点分十进制IP地址

例子:inet_addr("192.168.8.189");

③uint32_t htonl(uint32_t hostlong);将主机字节序转化为网络字节序

④uint16_t htons(uint16_t hostshort);

⑤uint32_t ntohl(uint32_t netlong);将网络字节序转化为主机字节序

⑥uint16_t ntohs(uint16_t netshort);

7)MAC地址,多用于局域网。根据MAC地址,当用户连入网络时,网关会生成MAC映射表,用于数据传输。

上一篇:Linux下网络编程实现UDP,还有大量实例

下一篇:进程和线程关系及区别

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部