zoukankan      html  css  js  c++  java
  • 计算机网络杂项

    OSI七层模型
    OSI 中的层            功能                                                        TCP/IP协议族
    应 用层                 文件传输,电子邮件,文件服务,虚拟终 端         TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
    表示层                 数据格式化,代码转换,数据加密                                    没有协议
    会话 层                 解除或建立与别的接点的联系                                          没有协议
    传输层                 提供端对端的接口                                                        TCP,UDP (RTP)
    网 络层                 为数据包选择路由                                                        IP,ICMP,RIP,OSPF,BGP,IGMP
    数据链路层           传输有地址的帧以及错误检测功能                            SLIP,CSLIP,PPP,ARP,RARP,MTU
    物 理层                 以二进制数据形式在物理媒体上传输数据                             ISO2110,IEEE802,IEEE802.2

    ************************************************************************************************************************************

    TCP/IP五层模型的协议

    应用层
    传输层:四层交换机、也有工作在四层的路由器

    网络层:路由器、三层交换机

    数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)

    物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层

    TCP/UDP 缓冲区满

    Q:本地同时与多个主机建立连接,如果这些主机同时发生数据到本地,而本地又没有调用recv进行处理,会出现什么情况?

    A:系统为每个socket建立一个缓存,ip层组包进程在收到数据包后会把数据放入 socket缓存。调用recv将socket缓存的内容copy到程序定义的缓存,如果通信进程不能及时recv,将导致该socket缓存满。如果用 tcp协议,socket缓存满以后,系统会向对方发出错误消息,对方回收到wsaewouldblock错误,如果是用udp协议,系统会把该 socket的以后收到的数据丢弃~

     

    /proc/sys/net/core/目录下也有:rmem_max, wmem_max, rmem_default, wmem_default几 项,你改这些值试试看,这可能是调整驱动层缓冲区的,/proc/sys/net/ipv4中应该可以调整你的tcp_socket的缓冲区(UDP不缓 冲)

     

    关于Linux中TCP和UDP协议的发送和接收缓冲区

    http://www.cnblogs.com/cnpirate/archive/2012/07/25/2608458.html

    1. tcp 收发缓冲区默认值
    [root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem
    4096 87380 4161536(TCP接收缓冲区)

    cat /proc/sys/net/ipv4/tcp_wmem
    4096 16384 4161536(TCP发送缓冲区)

    2. tcp 或udp收发缓冲区最大值
    [root@qljt core]# cat /proc/sys/net/core/rmem_max 接收

    [root@qljt core]# cat /proc/sys/net/core/wmem_max 发送

    3. udp收发缓冲区默认值

    [root@qljt core]# cat /proc/sys/net/core/rmem_default
    111616:udp接收缓冲区的默认值

    [root@qljt core]# cat /proc/sys/net/core/wmem_default
    111616:udp发送缓冲区的默认值

    注:有些设置需要echo 8388608 > /proc/sys/net/core/rmem_max后才能生效

     

  • 相关阅读:
    实现垂直居中
    三栏布局(双飞翼布局和圣杯布局)
    JavaScript执行机制
    使用vue-cil搭建项目
    格式化上下文formatting contexts
    定位体系(定位机制)
    CSS盒子模型
    可视化格式模型(visual formatting model)
    CSS布局开篇
    Linux之vi三种模式常用操作
  • 原文地址:https://www.cnblogs.com/jingzhishen/p/4115085.html
Copyright © 2011-2022 走看看