• 网络编程part2


    五层协议

    计算机1:                            计算机2:

    应用层                               应用层

    socket                              socket

    传输层                              传输层
    网络层                              网络层
    数据链路层                           数据链路层
    物理层  <===========交互机===========> 物理层


    客户端软件send             服务端软件recv
    操作系统                   操作系统
    计算机硬件<====物理介质=====>计算机硬件
    客户端软件send             服务端软件recv
    操作系统                   操作系统
    计算机硬件<====物理介质=====>计算机硬件



    ethernet头+ip头+tcp头+应用层的头+应用层数据

    一、传输层 tcp/udp协议——基于端口

    端口的范围是0-65535,其中0-1023是系统占用的端口

    所以ip加上port可以标识到世界范围的任意一个基于网络通信的应用程序

    基于ctp协议通信时——必须先建立一个双向通信的链接

    三次握手建立链接:
       建立链接是为了传数据做准备的,三次握手即可

    四次挥手断开链接
        断开链接时,由于链接内有数据传输,所以必须分四次断开

    tcp协议是可靠传输的,发送数据必须等到对方确认后才算完成,才会将自己内存中的数据清理掉,否则重传。

    udp协议是不可靠传输的(不需要确认,所以速度相对快)

    TCP协议的半连接池:

    backlog

    [请求1,请求2,请求3...]

    面对洪水攻击时,理论上的可以扩充backlog应对...

    二、应用层

    可以自定义协议——头部+数据

    注意点:

    1.头部:放对于数据的描述信息(接收方,数据类型,数据长度)

    数据:数据部分

    2.头部长度是固定的(通过头部来获取接收数据的属性)


  • 相关阅读:
    DSYMTools App Bug 分析工具
    Xcode dSYM 文件
    sqlserver数据库18456错误怎么解决?
    C#两个DataTable拷贝问题:该行已经属于另一个表的解决方法
    SNF微信公众号客户端演示-微信开发客户端能干什么
    sqlserver中创建链接服务器图解教程
    C#日期格式转换大全
    C#-MVC开发微信应用(8)--菜单管理的实现
    C#-MVC开发微信应用(7)--在管理系统中同步微信用户分组信息
    C#-MVC开发微信应用(6)--用户分组信息管理
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12726153.html
Copyright © 2020-2023  润新知