1网络编程基础概念

1.OSI 七层模型
1.定义:
1.应用层:提供用户服务,具体内容由特定程序规定
2.表示层:提供数据的压缩解压和加密等
3.会话层:建立程序级的连接,决定使用什么样的传输服务
4.传输层:提供合适的通信服务,流量控制(本节内容主要研究这层)
5.网络层:路由选择,网络互联,分组传输
6.链路层:提供链路交换,具体消息发送
7.物理层:物理硬件,接口
2.优点:将功能分开,降低网路传输中的耦合度,每一部分完成自己的功能,开发更清晰
3.编程原则:高内聚低耦合
1.高内聚:让模块的功能尽可能单一
2.低耦合:模块之间尽量减少相互的关联和影响
4.简化四层模型:
1.应用层:应用层 表示层 会话层
2.传输层:传输层
3.网络层:网络层
4.物理链路层:链路层 物理层
5.简化五层模型:(TCP/IP模型)
1.应用层:应用层 表示层 会话层
2.传输层:传输层
3.网络层:网络层
4.链路层:
5.物理层:
2.网络协议:网络通信中,各方必须遵守的规定,包括建立什么连接,如何识别,消息结构等
1.应用层:http smtp dns tftp
2.传输层:tcp udp
3.网络层:ip
3.网络概念
1.主机:计算机的名称(本机:localhost)
2.ip
1.本机测试ip:127.0.0.1
2.代表局域网内任意可用ip:0.0.0.0
3.表示网段,代表本网段任意可用ip:192.168.1.0
4.网关:192.168.1.1
5.本网段的广播地址:192.168.1.255
3.ifconfig linux查看网络信息命令
4.ping
5.端口号:地址的组成部分,在一个系统中区分应用层程序
可用端口号:1-65535
1-255 内定端口,勿用
256-1023 系统端口,勿用
推荐使用 10000-50000之间的端口
6.子网掩码:和IP配合过滤网段
7.dns:域名解析
8.字节序
1.大端序:高字节存在低地址
2.小端序:低字节存在低地址
3.网络字节序:将字节序发送方式统一,其实就是大端序
4.传输层服务
1.tcp协议(可靠连接):面向连接,进行可靠的数据传输,通过 三次握手 和 四次挥手 来连接和断开. 可靠连接:无失序,无差错,无丢失,无重复
1.三次握手:
1.客户端向服务器发起连接请求(问是否可以连接)
2.服务器收到请求后进行确认(允许连接) 返回报文
3.客户端收到许可,建立连接
2.四次挥手:
1.主动方发送报文告知被动方要断开连接
2.被动方返回报文,告知收到请求,准备断开
3.被动方发送报文给主动方,告知准备就绪可以断开
4.主动方发送报文确定断开
3.应用场景:适用于传输内容较大,网络情况好,需要提供准确传输的情况
2.udp协议(不可靠连接):面向无连接的服务,不可靠,发送时由发送端自主进行,不考虑接收端
应用场景:网络较差,对传输准确性要求低,广播组播,如:视频会议,广播数据
4.socket模块(import socket)
1.socket.gethostname() 获取主机名
2.socket.gethostbyname("主机名") 通过主机名获取ip地址
3.socket.gethostbyaddr("IP或域名") 返回远程服务器信息元组,元组第一项是主机名,第二项是服务器别名,第三项时服务器IP
4.socket.inet_aton("IP地址") 把IP地址转换成二进制的字符串返回. 如果要把ip地址的二进制字符串转换回IP地址,可以用 inet_ntoa("二进制字符串") 来转换.还有inet_pton可以转化ipv6的地址,暂时用不到,需要用时再说
5.socket.getservbyname("服务名") 查看应用服务开启的端口号

猜你喜欢

转载自www.cnblogs.com/huohu121/p/12310075.html
今日推荐