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

    联通原名为网通

    局域网中连线的范围在100m以内, 带宽在10M, 100M, 1000M以内, 单位为 Mbps

    广域网距离远,带宽租用,这里的带宽指的是从本机到购买的ISP的带宽

    SMTP为发送,POP3为接受

       

    OSI模型

    • 应用层:能产生网络流量的程序
    • 表示层:在传输之前是否进行加密或者压缩或者编码(GBK一个中文两个字节,UTF-8一个中文三个字节),一般在程序的开发时完成
    • 会话层:TCP的Keep Alive,使用netstat -n -b查看 ESTABLISHED的状态,与服务器通信都需要回话
    • 传输层:可靠与不可靠传输
    • 网络层:负责选择最佳路径,回话IP地址
    • 数据链路层:封装成帧,透明传输,差错校验
    • 物理层:接口标准,电器标准,和硬件相关

       

    TCP/IP排错

    • 物理层:查看连接状态,发送和接受包;网线水晶头
    • 数据链路层:欠费了;MAC冲突;网速协商
    • 网络层:地址配置错误;网关错误;路由表
    • 传输层:TCP/UDP
    • 应用层:应用程序配置错误

       

    带宽

    • 带宽越大,发送时延越短,电信号频率越高,低电频与高电频越接近,接收端就越难识别出高低电频,因此带宽不是越大越好
    • Ping 命令显示的时间是往返时间

       

       

    物理层

    • 媒体:光纤,网线等
    • 信号
      • 基带信号:原始二进制信号
      • 曼切斯特编码:从低到高为0,从高到低为1
      • 差分曼切斯特编码:0与1要看前一个,突变为0,否则为1
    • 奈氏准则
      • 在没有电磁干扰的情况下,码元(包含n个比特)传输数据也有极限
    • 常用编码
      • 单极性不归零码
      • 双极性不归零码
      • 单极性归零码
      • 双极性归零码
      • 曼切斯特编码
      • 差分曼切斯特编码
    • 网络设备
      • 同类设备使用交叉线
      • 不同类设备使用直连线
    • 微波在空间上是沿着直线传播
      • 卫星通信
    • 信道复用技术
      • 频分复用:应用
        • ADSL:猫,利用现有的电话线,因为电话传输只使用低频率段,上网可以利用剩余高频率段(再划分成上传和下载频率段)
      • 时分复用:用户数据对号入座,是有顺序的发送数据的
      • 统计时分复用:用户数据添加额外的数据,发送数据的顺序是任意的,接收端通过额外的数据依次去取出
      • 波分复用

           

           

    数据链路层(PPP协议)

    • 封装成帧
    • 透明传输
      • 字节填充,转义字节
    • 差错检验
      • 比特差错,1可能变成0,0可能变成1
      • CRC计算出FCS(冗余码)放到帧最后,接收到得到数据之后除以发送端计算FCS 的除数,如果余数为0就接受,否则丢弃
        • 检出不出错误的概率很低,只要除数位数够多
    • PPP协议:点对点协议
    • PPP协议的帧起始和结束都是7E(0111 1110)
      • PPP也有透明传输问题,需要进行字节填充进行转义,如果数据部分是ACSII,则使用转义字节,如果为二进制数据,则每5个连续的1中间添加一个0
      • PPP协议支持身份认证
    • 碰撞检测
      • 二进制退避算法
    • 广播信道的数据链路是CSMA/CD协议
      • 集线器就是如此
    • 以太网的信道利用率
      • 以太网帧整个最小64个字节
    • 扩展以太网
      • 距离扩展
      • 集线器级联,增加网络中计算机的数量,组建更大的冲突域,因为集线器没有记忆性
      • 网桥:对接口的位置有记忆功能,用与两个冲突域的连接,网桥是交换机的前身,交换机因为接口很多,直接和计算机连接,根据交换机和网桥的特性,是全双工的
        • 交换机:端口带宽独享,保存MAC与接口对应的表
    • 快速以太网
      • 百兆以太网
    • 路由器在3层(可以看到IP),交换机在2层(不能看到IP)
    • 网络层不负责发送数据的顺序,什么都不管,只管发数据发送出去
    • 路由器会隔离广播

       

    TCP

    • 全双工
    • 可靠
      • RTT 来回时间
      • 通过等待协议实现可靠传输,但是信道利用率太低了,大部分都在等待
        • 所以通过流水线提高信道利用率,本质是利用滑动窗口
        • 累计确认提高效率,只返回给对方累计收到的最后一个确认
      • 可靠是发一次,确认一次,确认用于确定下一次发送的序号
    • 面向字节流
    • TCP报文首部
      • 20字节固定首部
      • 尾部有长度可变的选项
    • TCP在建立回话的时候
      • SYN=1,ACK=0,序列号=0
      • 回话建立结束服务期发送数据,SYN=1,ACK=1,序列号=0
      • 之后都是ACK=1,SYN=0
    • 发送数据是先将数据放到缓存中,满了再发送

         

         

    • TCP滑动窗口
      • 滑动窗口在缓存中设定,表示从缓冲中的一个滑动窗口一个片段(字节段)的发送数据,知道字节段不再是滑动窗口中,等到对方确认了再删除缓存中对应的字节数据

         

         

         

         

         

    流量控制

    • 发着发着滑动窗口自动调节变小了,因为接收方接受不过来了,发给发送方请求调整滑动窗口的大小

       

    TCP拥塞

    • 拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素
    • 流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制,它所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接受

         

         

         

    UDP

    • 一个数据包就能完成就用UDP

       

    音频视频

    • 流式存储音频/视频——边下载边播放,可以用与维护版权
    • 交互式音频/视频

         

         

         

         

         

    TCP 可靠传输

    • 拥塞控制
    • 流量控制
    • ARQ

       

    • 拥塞控制
      • 慢开始
        • 一开始发送1个报文段,接着不断地指数增加(124),当大于或者等于ssthresh(慢开始门限)时,转为加法增加,当出现网络拥塞时,把发送窗口最大值减半,重新从1个报文开始慢开始
      • 快重传
        • 实在TCP开始建立连接的时候使用慢开始,之后如果收到连续的3个ACK,则判定数据分组丢失,重传
      • 快恢复
        • 当发送方连续收到三个重复确认时,就执行"乘法减小"算法,把慢开始门限减半,这是为了预防网络发生拥塞。
        • 由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是把cwnd值设置为慢开始门限减半后的值,然后开始执行拥塞避免算法,是拥塞窗口的线性增大

             

       

    • 流量控制
      • A发到给B,需要发送 seq,ack,length,其中seq是发送数据的字节编号,length是发送数据的长度,ack是通知接收方下一次发送给自己时的seq,假如A发送给B的数据时seq=1,ack=1,length=100
      • B 发送给A的数据时,ack=101,length=200,这里B是接收端,B发送的length是B接收窗口的大小,如果为0表示不接受数据了

           

    • ARQ(包含两个协议)
    • 停止等待协议
      • A与B进行通信,如果A发送数据给B,B发送确认给A,则为无差错
      • 如果B发送给A的确认丢失了,则A会重传
      • 如果B发送给A的确认延迟到达了,则A也会重传
    • 连续ARQ协议(滑动窗口协议)
      • 基于滑动窗口,发送滑动窗口中的数据,只有哪些得到了确认的数据,滑动窗口才会像前移动,如果收到接收端的wnd调整请求,就会将自己的滑动窗口进行调整
  • 相关阅读:
    MonoDevelop/MonoTouch SDK开发iOS程序体验! 不及格的程序员
    iPad 开发陷井1 不及格的程序员
    以苹果平台下开发语言 "ObjectiveC" 谈语言开发效率之争 C#与Java你们都不要争,我才是最慢的! 不及格的程序员
    C# 扩展方法 借签于 ObjectiveC 扩展类. 不及格的程序员
    iOS 编程陷井. 不及格的程序员
    Multimedia Programming Guide & Audio 不及格的程序员
    GoogleStyleGuide 一个不错的开源项目. 不及格的程序员
    撒哟那拉 volatile !!! 不及格的程序员
    iPhone 游戏 Infinity Blade1.0 通关 不及格的程序员
    终于在中国大陆的互联网络中用Facebook and tWitter 's iPhone 客户端登录了。 不及格的程序员
  • 原文地址:https://www.cnblogs.com/megachen/p/12636477.html
Copyright © 2011-2022 走看看