美文网首页
TCP/IP体系五层大楼

TCP/IP体系五层大楼

作者: 秋不舍燕桃 | 来源:发表于2018-03-29 00:42 被阅读0次
    QQ截图20180329004122.png

    架构

    1.应用层(应用间的通信协议)
    主要代表:HTTP协议
    
    2.运输层(找到该电脑的端口)
    主要代表:TCP协议`
    
    3.网络层(找到指定IP的电脑)
    主要代表:IP协议`
    
    4. 数据链路层
    5. 物理层
    

    理解过程

    1. 协议与服务

    这是一对相对的概念
    协议:两个客户端(服务端/电脑) 同一层结构(应用层-应用,运输-运输..)的通信规则
    服务:统一个服务端,下一层为上一层提供的接口(服务)
    

    2. 服务过程

    QQ发信息:A发“haha”给 B
    1. 应用层:带着“haha”信息数据,通过协议打包好,将数据提交给下一层
    2. 传输层:
        a. 提前与B建立连接(为了确保信息完整安全,想象提前建一个隧道)
        b. 接受上一层提供的数据,通过协议打包
        c. 将数据提交给下一层
    3. 网络层:继续封装数据,然后提交给下一层(此时数据已包括目标ip和端口)
    4. 链路层:把数据切成一小块一小块
    5. 物理层:把上面的数据转出0和1
    
    01001 ,历经无数个路由,到达指定客户端B
    在B:
    1. 物理层、链路层:把数据拼接还原完整,把数据往上一层传
    2. 网络层:在一路上通过无数路由找到目标主机,把数据往上一层传
    3. 传输层:确定端口,把数据网上一层传
    4. 应用层:接受服务端口的数据->翻译->B看到了“haha”
    

    Python创建连接(套接字)

    Socket 是对 TCP/IP 协议的封装
    目的:
    建立连接,为上一层(应用层),提供一条信息传输的“隧道”
    

    服务器端:

    1. 初始化服务

    初始化socket服务(对象)
    s = socket.socket()
    

    2. 绑定服务到指定端口

    socket服务中,ip和端口总是(以元祖的形式)成对出现,ip默认本地
    s.bind( ('ip',端口) )
    

    3. 监听端口

    n:指定可以“接待”的客户数量
    s.listen(n)
    

    4. 接待来宾,建立连接

    conn,addr = s.accept()  -->  返回一个元祖,包括两个元素
        若无客户端接入会一直等待···
        理解:配送接待员,是配送、配送、配送,这是一个行为
    
    元素一:socket对象
            为服务器的端口分配一个“接待员”(线程),接待客户
    元素二:元组('ip',端口)
    

    5. 数据传输

    线程.send(b'...') / conn.send(b'...')
        b'' :这样的数据不会发送
    
    线程.recv(n) / conn.recv(n)   n:要接受的字节数
        若接受不到数据,会一直等待···
        当收到  b''  数据时,说明客户端断开
    

    6. 关闭连接

    线程.close() / conn.close()   :关闭该线程的(连接)服务
    s.close()                   :关闭该端口的服务,取消占用端口
    程序结束会关闭端口服务
    

    客户端:

    1. 初始化服务(同上)

    2. 连接到目标服务器的特定端口

    s.connect(('ip',端口))
        连接到服务器
        一个connect,对应一个线程(conn)
    

    3. 数据传输(同上)

    4. 关闭连接(同上)

    参考资料

    • <计算机网络>
    • 计算机端口详解

    http://blog.csdn.net/freeking101/article/details/70174350

    • HTTP和Socket的区别

    https://www.cnblogs.com/meier1205/p/5971313.html

    相关文章

      网友评论

          本文标题:TCP/IP体系五层大楼

          本文链接:https://www.haomeiwen.com/subject/ffupcftx.html