网络编程

43 篇文章 3 订阅

一、什么是网络

在计算机领域中,网络是信息传输、接收、共享的虚拟平台

二、什么是网络编程

网络编程从大的方面来说就是对信息的发送到接收。

通过操作相应的Api调度计算机硬件资源,并利用传输管道进行数据交换的过程

更为具体的涉及:网络模型、套接字、数据包

 

三、7层网络模型-OSI

上图是两台电脑发送、接收的过程:

表示层(Presentation):应用层(Application)调用表示层(Presentation)将应用层的东西表示成对应数据层面的东西,比如字符串。

会话层(Session):会话层的主要目的是进行不同机器用户之间会话的管理。

传输层(Transport):接收上一层的数据,在必要的时候将数据进行分割,并将这些数据交给网络层并保证这些数据段的有效性。

网络层(Network):主要作用是控制子网的运行,比如对逻辑地址进行分组传输、对路由进行选择

数据链路层(Data Link):进行物理地址寻找,同时将原始比特流转换为逻辑的传输路线

物理层(Physical):进行机械的、电子的、定时的接口通信上原始的比特流的传输,其实就是电信号或者是光信号的传输

 

接收的时候,首先是物理层接收到光信号或者是电信号,然后转换为数据链路层,再往上解析为网络层、传输层、会话层、表示层,再到最后的程序层面,就把数据传输到了接收的电脑上

 

基础层:物理层(Physical)、数据链路层(Datalink)、网络层(Network)

传输层(Transport):TCP-UDP协议层、Socket

高级层:会话层(Session)、表示层(Presentation)、应用层(Application)

 

四、网络模型-对应关系

 

五、Socket与TCP、UDP

1、Socket

简单来说是IP地址与端口的结合协议(RFC 793)

一种地址与端口的结合描述协议

TCP/IP协议的相关API的总称;是网络Api的集合实现

2、Socket的作用与组成

在网络传输中用于唯一标示两个端点之间的连接

端点:包括(IP+Port)

4个要素:客户端地址、客户端端口、服务器地址、服务器端口

3、Socket传输原理

4、TCP

TCP是面向连接的通信协议

通过三次握手建立连接,通信完成时要拆除连接

由于TCP是面向连接的所以只能用于端到端的通讯

5、UDP

UDP是面向无连接的通讯协议

UDP数据包括的端口号和源端口号信息

由于通讯不需要连接,所以可以实现广播发送,并不局限于端到端

6、TCP传输图解

7、UDP传输图解

 

8、Client-Server Application

TCP/IP协议中,两个进程间通信的主要模式为:CS模型

主要目的:协调网络中的计算机资源、服务模式、进程间数据共享

常见的:FTP、SMTP、HTTP

 

六、报文、协议、Mac地址

1、报文段

报文段是在指TCP/IP协议网络传输过程中,起着路由导航作用

用以查询各个网络路由网段、IP地址、交换协议等IP数据包

报文段充当整个TCP/IP协议数据包的导航路由功能

报文在传输过程中会不断地封装称分组、包、帧来传输

封装方式就是加上一些控制信息组成的首部,即报文头

2、传输协议

协议顾名思义,一种规定,约束

约定大于配置,在网络传输中依然适用;网络的传输流程是健壮的稳定的,得益于基础的协议构成

简单来说:A->B的传输数据,B能识别,反之B->A的传输数据A也能识别,这就是协议

3、Mac地址

Media Access Control或者Medium Access Control

意译为媒体访问控制,或称为物理地址、硬件地址

用来定义网络设备的位置

形如:44-45-53-54-00-00;与身份证类似

 

七、IP、端口及远程服务器

1、IP地址

互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address)

是分配给网络上适用网际协议(英语:Internet Protocol,IP)的设备的数字标签

常见的IP地址分为IPv4和IPv6两大类

1.1 IP地址-IPv4

IP地址由32位二进制数组成,常以XXXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的10进制数

分为A、B、C、D五大类,其中E类属于特殊保留地址

总数量:4,294,967,296个(即232):42亿个;最终于2011年2月3日用尽

如果主机号全是1,那么这个地址为直接广播地址

IP地址“255.255.255.255”为受限广播地址

1.2 IP地址-IPv6

总共有128位长,IPv6地址的表达形式,一般采用32个十六进制数。也可以想象为1632个

由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(huoz 64位扩展唯一标识)

2001:0db8:85a3:0000:1319:8a2e:0370:7344

IPv4转换位IPv6一定可行,IPv6转换位IPv4不一定可行

2、端口

2.1 如果把IP地址比作一间房子,端口就是出入这间房子的门或者窗户

0到1023号端口以及1024到49151号端口都是特殊端口

计算机之间依照互联网传输层TCP/IP协议的协议通信,不同的协议对应不同的端口

49152到65535号端口属于“动态端口”范围,没有端口可以被正式地注册占用

 2.2端口总数:65536,连接能建立多少个?65536个?

这里的65536代表自己的电脑本地端口号,每个ip地址都有65536个端口号,但是如果是多IP地址的话,连接数会远远大于65536个。当然,端口依然是有限的,但是对于服务器来说,它监听80端口,无论有多少个客户端进来,都是通过80端口进行交互,不会创建额外多余的端口号

2.3 数据传输层次

3、远程服务器

局域网:一般而言,家里的环境以及公司相互电脑之间环境都属于局域网

公司和家里的电脑之间属于互联网,而非局域网

3.1 两个局域网之间是无法直接连接的

 

3.2  局域网的数据交换

 

3.3

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值