1网络编程基础概念

≯℡__Kan透↙ 提交于 2020-02-14 23:37:04
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("服务名") 查看应用服务开启的端口号
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!