什么是网络编程?
什么是网络、计算机网络的构成是什么?
- 在计算机领域当中,网络是信息传输、接收、共享的虚拟平台
- 通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享
- 网络是人类发展史来最重要的发明,提高了科技和人类社会的发展
什么是网络编程?
- 网络编程从大的方面说就是对信息的发送到接收
- 通过操作响应的Api调度计算机硬件资源,并利用传输管道(网线)进行数据交换的过程
7层网络模型-OSI
- 七层模型
- 应用层,app应用
- 表示层,把应用数据表示成对应数据层面的东西
- 会话层,不同机器应用之间的用户建立管理的作用
- 传输层,数据有效传输到网络层
- 网络层,控制子网的运行
- 数据链路层,进行物理的地址寻找
- 物理层,机械电子通信,原始比特流传输
- 分类划分
- 基础层:物理层、数据链路层、网络层
- 传输层:TCP-UDP协议层、Socket
- 高级层:会话层、表示层、应用层
Socket与TCP、UDP
什么是Socket?
- 简单来说是IP地址与端口的结合协议(PFC 793)
- 一种地址与端口的结合描述协议
- TCP/IP协议的相关API总称;是网络Api的集合实现
- 涵盖了:Stream Socket / Datagram Socket
Socket的作用和组成
- 在网络传输中用于唯一标识两个端点之间的链接
- 端点:包括(IP + Port)
- 4个要素:客户端地址、客户端端口、服务器地址、服务器端口
Socket 之 TCP
- TCP是面向连接的通信协议
- 通过三次握手建立连接,通讯完成时要拆除连接
- 由于TCP是面向连接的,所以只能用于端到端的通讯
Socket 之 UDP
- UDP是面向无连接的通讯协议
- UDP数据包括目的端口和源端口号信息
- 由于通讯是不需要连接的,所以可以实现广播发送,并不局限于端到端
Client-Server Application
- TCP/IP 协议中,两个进程通信的主要模式为:CS模型
- 主要目的:协同网络中的计算机资源、服务模式、进程间数据共享
- 常见的:FTP、SMTP、HTTP
报文、协议、Mac地址
报文段
- 报文段在TCP/IP协议网络传输过程中,起着路由导航作用
- 用以查询各个网络路由网段、IP地址、交换协议等IP数据包
- 报文段充当整个TCP/IP协议数据包的导航路由功能
- 报文在传输过程中不断地封装成分组、包、帧来传输
- 封装方式就是添加一些控制信息组成的首部,即报文头
传输协议
- 协议顾名思义,一种规定,约束
- 约定大于配置,在网络传输中依然适用;网络的传输流程是健壮的稳定的,得益于基础的协议构成
Mac地址
- Media Access Control 或者 Medium Access Control
- 意译为媒体访问控制,或称为物理地址、硬件地址
- 用来定义网络设备的位置
- 形如:44-45-53-54-00-00
IP地址
- 互联网协议地址(Internet Protocol Address),缩写为IP地址
- 是分配给网络上使用网际协议的设备数字标签
- 常见的IP地址分为IPv4与IPv6两大类
- IP地址由32位二进制组成,常以xxx.xxx.xxx.xxx形式表现,每组xxx代表小于或等于255的10进制数。
- 分为A/B/C/D/E五大类,其中E类属于特殊保留地址
IP地址-IPv4
- IPv4地址总数量:2的32次方个,最终在2011年2月3日用尽
- 如果主机号是全1(1.1.1.1),那么这个地址为直接广播地址
- 如果主机号全是255(255.255.255.255),这个地址为受限广播地址,代表局域网的广播地址,如果使用UDP往这个IP发送信息,name局域网的其他设备都能收到信息,如果向1.1.1.1发送信息,理论上来讲网络上所有的设备都能接收到信息,但是会被局域网的防火墙所拦截
IP地址-IPv6
- 总共有128位长,IPv6地址的表达形式,一般采用32个十六进制数。
- 由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成。
- 举例:2001:ab38:3837:0000:f8c4:a893:9813:2452
- IPv4转成IPv6一定可行,IPv6转换为IPv4不一定可行
端口
- 如果把IP地址比作一间房子,端口就是出入这间房子的门或者窗户
- 在不同的窗户后有不同的人,房子中的用户与外界交流的出口
- 外界的鸽子(信息)飞到不同窗户也就是给不同的人传递信息
- 0到1023号端口以及1024到49151号端口都是特殊端口
- 计算机之间依照互联网传输层TCP/IP协议的协议通信,不同的协议对应不同的端口
- “49152”到“65535”号端口属于“动态端口”范围,没有端口号可以被正式的注册占用
远程服务器
- 局域网:一般而言,家里的环境以及公司相互电脑之间环境都属于局域网,同一个路由器下的设备