1.1 计算机发展史

1.1.1最早的广域网

双方或多方之间,电路交换建立电路连接的网络

 

1.1.2 电路交换***点

           1 建立链接 -.> 使用链接 -> 释放链接

           2 物理通路被通信双方独占

1.1.3 计算机网络要求

           ARPA(the Advanced Researc Projects Agency)美国高级研究计划署

           对计算机网络要求:

  •           不是打电话
  •             结构简单,可靠的传输数据
  •           连接不同的计算机
  •           所有的网络节点同等重要
  •          有多的路由

1.1.4 分组交换

             每个分组由首部和数据段组成

1.1.5 交换方式

       存储转发

         节点收到分组,暂存,检测其首部,按首部地址,发到适合的节点

     特点:

  •               传输单位为分组
  •                独立选择转发路由
  •                  逐段占用,动态分配传输宽带

1.1.6 因特网发展史

         ARPANET向因特网发展

           TCP/IP协议成为ARPANET的标志协议

 

1.1.6.1 三级结构的因特网

         NSFNET:国家科学基金网

                 主干网

                 地区网

                校园网

1.1.6.2 多级结构的因特网

            NSFNET被商用因特网主干网代替

1.2 TCP/IP协议简介

ARPANet 指定 TCP/IP 协议(族)

应用领域:

为了减少协议的复杂性,都采用分层组织

下一层服务上一层

每层的实现细节对上层屏蔽

 

1.2.1 分层结构

 

    应用层:

           应用程序间沟通

             例如:FTP,Telnet,HTTP

           传输层:

                  进程间的数据传输服务

                负责传输数据,提供应用程序到端的逻辑通信

               例如:TCP,UDP

          网络层:

              基本的数据封包传送功能

               每个数据包传到目的主机

                  例如:IP,ICMP

         链路层:

              数据帧的发送和接收

             每次完成自己的任务,最终完成数据收发

 

1.2.2 IP协议简介

        实现一个相连的网络系统从源文件到目的地传输数据包

           特点:

               不可靠:不能保证IP数据包送到目的地

              无连接:IP不维护数据包的状态信息

               IP数据包:发送IP地址(源地址)和接收IP地址(目的地址)

 

1.2.3 TCP协议简介

          TCP :

                  面向连接,可靠的传输层通信协议

             功能:

                   不同主机上的进程间的通信

      特点:

  •              建立链接 -> 使用链接 -> 释放链接(虚电路)
  •              TCP数据包:序号,确定序号
  •                对包进行排序并检错,损坏的包被重传

           服务对象:

                 高度可靠性且面向连接的服务

                   如:HTTP,FTP,SMTP

 

1.2.4 UDP协议简介

            UDP是面向无连接的传输层通信协议

           功能:

                 不同主机的进程间通信

         特点:

  •            发数据不用建立链接
  •            不对数据包的顺序进行检查
  •           没有错误检测和重传机制

         服务对象:

         查询——应答

          NFC,NTP,DNS

 

1.3 MAC地址 IP地址 Netmask 端口

1.3.1 网卡

         网络适配器,网络接口卡(NIC)

         不同计算机之间连接,完成数据通信

1.3.2 mac地址

           标识网络设备,且理论全球唯一

         组成:

             以太网的MAC地址是48bit的值

1.3.3 IP地址

        Internet上的主机编址方式,网际协议地址

1.3.3.1 IP地址组成

       32bit,由{网络ID,主机ID}组成

          子网ID:

              IP地址中由子网掩码 1 覆盖的连续位

          主机ID:

              IP地址中由子网掩码 0 覆盖的连续位

 

1.3.3.2 IP地址特点

          子网ID不同的网络不能直接通信,需要路由器转发

         主机ID全为 0 的IP地址为网段地址

          主机ID全为 1 的IP地址为网段的广播地址

 

1.3.3.3 IP地址分类

        A类地址:

                 8bit子网ID,第一位 0

          B类地址:

                16bit子网ID,前二位 10

            C类地址:

                24bit子网ID,前三位 110

         D类地址:

              前四位 1110 ,多播地址

         E类地址:

            前五位11110,保留

                A,B,C三类地址为常用

         公用IP(直接连Internet)

              经InterNIC统一规划IP

        私有IP(不可直接连Internet)

            局域网络的主机联机规划

1.3.3.4 回环IP地址

      127.0.0.1为回环地址

          功能:

               测试本机的网络配置,ping通127.0.0.1,说明本机的网卡和IP协议安装没有问题

           注意:

                127.0.0.1 ~ 127.255.255.254 中任何地址都能回环到本地主机

                 不属于任何地址类,本地虚拟地址

1.3.3.5 IP地址设置

ifconfig eth0 192.168.1.1

     自动获取网络参数(DHCP)

          重新获取IP:

 sudo dhclient

 

           拨号取得:

            向ISP申请注册,直接拨到ISP,ISP自动设置电脑的网络参数

sudo ppoeconf sudo pon dsl-provider #拨号 ADSL sudo poff #断开 ADSL

1.3.4 子网掩码

        subnet mask 又名:网络掩码,地址掩码,32bit 由 1 和 0 连续组成

          作用:

               指明IP地址的子网和主机号

          特点:

                结合IP地址一起使用

                 IP地址由子网掩码 1 连续覆盖的为子网ID ,其余为主机ID

         子网掩码的表现形式:

                 192.168.220.0 255.255.255.0

                 192.168.220.0 24

          手动配置:

ifconfig eth0 10.0.31.96 netmask 255.255.255.0

 

1.3.5 端口

1.3.5.1 端口概叙

        TCP/IP协议采用 端口标识通信的进程

          区分一个系统里多个进程

      特点:

  •          同一个端口,在不同系统对应不同的进程
  •          同一个端口,一个端口对应一个进程
  •           传输层送到的数据被该端口的进程接收,该进程送到传输层的数据通过该端口送出

 

1.3.5.2 端口号

    端口号(port)标识运行的网络程序

       特点:

  •            端口号是无符号短整型的类型
  •             每个端口有一个端口号
  •             TCP,UDP维护独自的端口
  •            网络应用程序,至少占一个以上的端口号。

      知名端口(1 ~ 1023):

               互联网数字分配机构(IANA)根据用户需要进行统一分配

                 例:FTP——21,HTTP——80

               服务器使用范围,强制使用,root权限

         动态端口(1024 ~ 65535):

               应用程序的使用范围

          注意:

               端口号类似于进程号,同一个时刻标志一个进程,可重复使用

 

1.4 数据包的组装,拆解

1.4.1 数据包在各个层之间的传输

1.4.2 链接层封包格式

        注意:

             IEEE802/802.3 封装用在无线

             以太网封装在有线局域网

 

1.4.3 网络层,传输层封包格式

 

1.5 网络应用程序开发流程

1.5.1 TCP 面向连接

        数据传输经过建立连接,使用连接,终止连接

        连接是个管道,收发顺序和内容一致

      保证数据传输的可靠性

1.5.2 UDP 面向无连接

        每个分组带目的地址

          不保证分组的前后顺序

          不进行分组的错误的恢复和重传

         不保证数据传输的可靠性

       面向连接和无连接,一般采用C/S架构client向server发出请求,server接收后提供相应的服务

 

1.5.3 C/S架构示例 (面向连接)

    server工作过程

        打开通信服务并告知本机主机,愿意用个特定的端口接收客户得请求等待客户请求达到端口,接收客户请求,并发出应答信号,激活新的线程处理客户得请求,服务完成后,关闭新线程与客户得通信链路

 

client工作过程

          打开通信服务并连接服务器的端口,向服务器发出服务请求,等待并接收应答,根据需要继续发起请求,请求结束后关闭通信服务并终止