zoukankan      html  css  js  c++  java
  • 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("服务名") 查看应用服务开启的端口号

  • 相关阅读:
    HDU4507 吉哥系列故事――恨7不成妻(数位dp)
    UCF Local Programming Contest 2017 G题(dp)
    ICPC Latin American Regional Contests 2019 I题
    UCF Local Programming Contest 2017 H题(区间dp)
    HDU2089 不要62
    AcWing1084 数字游戏II(数位dp)
    UCF Local Programming Contest 2017 F题(最短路)
    Google Code Jam 2019 Round 1A Pylons(爆搜+贪心)
    AcWing1083 Windy数(数位dp)
    Vue
  • 原文地址:https://www.cnblogs.com/huohu121/p/12310075.html
Copyright © 2011-2022 走看看