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.网络层:ip3.网络概念 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("服务名") 查看应用服务开启的端口号
来源:https://www.cnblogs.com/huohu121/p/12310075.html