计算机网络概述

本文介绍了计算机网络的发展历程,重点讲述了分组交换方式和TCP/IP协议族的工作原理。TCP/IP协议包括应用层、传输层、网络层和链路层,其中IP协议提供不可靠的数据包传输,TCP协议则提供了可靠的连接服务。此外,还详细阐述了MAC地址、IP地址、子网掩码和端口的作用。最后,讨论了网络应用程序开发中面向连接的TCP和无连接的UDP的区别。
摘要由CSDN通过智能技术生成

一、计算机网络发展简史

1.1 早期的电路交换网

        1、在通信双方或者多方之间通过电路交换建立电路连接的网络

        

        2、电路交换的特点

                1、建立链接 => 使用链接 => 释放链接

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

        计算机数据是突发式出现在数据链路上的,而电路交换网的建立链接、使用链接、释放链接的三个过程使得传输效率太低,故电路交换不适合传输计算机数据。

1.2 最早的计算机网络

        1、最早的计算机网络是由美国创造的ARPA,但是最早的ARPA无法连接不同类型的计算机和不同类型的操作系统。

1.3 计算机网络中数据采用分组交换的方式

        1、通过标有地址的分组进行路由选择传输数据,使得通道仅在传送期间被占用的一种交换方式

        2、分组的组成

                

1.4 计算机网络中数据的交换方式

        1、交换方式:存储转发

        2、节点收到分组,先暂时存储下来,再检查其首部,按照首部中的目的地址,找到合适的节点转发出去。

                                        

         3、特点

                1、以分组作为传输单位

                2、独立的选择转发路由

                3、逐段占用,动态分配传输带宽

1.5 计算机网络中的世界语 - TCP/IP协议

        1、到现在为止,只要是能够通信的机器,能够上网的机器,一定用的就是TCP/IP协议族。

二、TCP/IP协议简介

        为了减少协议设计的复杂性,大多数网络模型均采用分层的方式来组织,每一层利用下一层提供的服务来为上一层提供服务,本层服务的实现细节对上层屏蔽。

2.1、分层结构

        为了能够实现不同类型的计算机和不同类型的操作系统之间进行通信,引入了分层的概念最早的分层体系结构是OSI开放系统互联模型,是由国际化标准组织(ISO)指定的,由于OSI过于复杂,所以到现在为止也没有适用,而使用的是TCP/IP协议族OSI一共分为7层,TCP/IP协议族一共四层,虽然TCP/IP协议族层次少,但是却干了OSI7层所有任务

        

应用层:应用程序间沟通的层。例如:FTP、Telnet、HTTP等。
传输层:提供进程间的数据传送服务。负责传送数据,提供应用程序端到端的逻辑通信例如:TCP、UDP。
网络层:提供基本的数据封包传送功能,最大可能的让每个数据包都能够到达目的主机例如:IP、ICMP等。
链路层:负责数据帧的发送和接收。

每层完成自己的任务,最终通过不同层次的处理完成数据的收发。

        

2.2、IP协议简介

        IP协议也称为网际协议。特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议。

        特点:

        不可靠:它不能保证IP数据包能成功地到达它的目的地,仅提供尽力而为的传输服务。
        无连接:IP并不维护任何关于后续数据包的状态信息。每个数据包的处理是相互独立的。IP数据包可以不按发送顺序接收。

        IP数据报中含有发送它主机的IP地址(源地址)和接收它主机的IP地址(目的地址)

2.3、TCP协议简介

        TCP协议:传输控制协议。TCP是一种面向连接的,可靠的传输层通信协议。

        功能:提供不同主机间上的进程间通信。

        特点:        

                        1、建立链接->使用链接->释放链接(虚电路)
                        2、TCP数据包中包含序号和确认序号
                        3、对包进行排序并检错,而损坏的包可以被重传

        服务对象:需要高度可靠性且面向连接的服务如HTTP、FTP、SMTP等。

2.4、UDP协议简介

        UDP协议,用户数据报协议。UDP是一种面向无连接的传输层通信协议。

        功能:提供不同主机上的进程间通信。

        特点:

                1、发送数据之前不需要建立链接
                2、不对数据包的顺序进行检查
                3、没有错误检测和重传机制

        服务对象:主要用于“查询-应答”的服务。如:NFS、NTP、DNS等。

三、MAC地址、IP地址、NETMASK、端口

3.1、MAC地址

        3.1.1、网卡

                又称为网络适配器或网络接口卡NIC,但是现在更多的人愿意使用更为简单的名称“网卡”。通过网卡能够使不同的计算机之间连接,从而完成数据通信等功能。

        3.1.2、MAC地址

                每一个网卡在出厂时,都会给分配一个编号,这个编号就称之为mac地址MAC地址,用于标识网络设备,类似于身份证号,且理论上全球唯一。

                组成:以太网内的MAC地址是一个48bit的值,通常人为识别时是通过16进制数来识别的,以两个十六进制数为一组,一共分为6组,每组之间通过:隔开,前三组称之为厂商ID,
后三组称之为设备ID。

                如何查询Linux下的MAC地址:

                

                如何查询Windows下的MAC地址:

                 打开“网络与Internet”设置  => 更改适配器选项 =>  找到自己联网的图标 => 双击打开=>查看详细信息。

                

 

3.2、IP地址

        IP地址是一种Internet上的主机编址方式,也称为网际协议地址IP地址是任意一台主机在网络中的唯一标识。

        3.2.1、IP地址的分类

        ipv4,占32位。ipv6,占128位

        3.2.2、IPV4地址的组成

        ipv4一般使用点分十进制字符串来标识,比如192.168.3.103。使用32bi,由{网络ID,主机ID}两部分组成。子网ID:IP地址中由子网掩码中1覆盖的连续位。主机ID:IP地址中由子网掩码中0覆盖的连续位

        

 

        3.2.3、IP地址的特点

                子网ID不同的网络不能直接通信,如果要通信则需要路由器转发。主机ID全为0的IP地址表示网段地址。主机ID全为1的IP地址表示该网段的广播地址 

                例如:192.168.3.10和192.168.3.111可以直接通信。如果192.168.3.x网段而言,192.168.3.0表示网段,192.168.3.255表示广播地址。

        3.2.4、IPV4地址的分类(依据前八位来进行区分)

        A类地址:默认8bit子网ID,第一位为0,前八位00000000-01111111,范围0.x.x.x-127.x.x.x
        B类地址:默认16bit子网ID,前两位为10,前八位10000000-10111111,范围128.x.x.x-191.x.x.x
        C类地址:默认24bit子网ID,前三位为110,前八位11000000-11011111,范围192.x.x.x-223.x.x.x
        D类地址:前四位为1110,组播地址,前八位11100000-11101111,范围224.x.x.x-239.x.x.x
        E类地址:前五位为11110,保留为今后使用,前八位11110000-11111111,范围240.x.x.x-255.x.x.x
        A,B,C三类地址是最常用的

        3.2.5、私有IP地址

                公有IP(可直接连接Internet)经由InterNIC所统一规划的IP。

                私有IP(不可直接连接Internet)主要用于局域网络内的主机联机规划。

        3.2.6、回环IP地址

                通常127.0.0.1称为回环地址。

                功能:主要是测试本机的网络配置,能ping通127.0.0.1说明本机的网卡和IP协议安装都没有问题。

                注意:127.0.0.1~127.255.255.254中的任何地址都将回环到本地主机中不属于任何一个有类别地址类,它代表设备的本地虚拟接口。

        3.2.7、查询IP地址的指令        

                Linux下:ifconfig

                Windows下:ipconfig

        3.2.8、如何判断主机是否可以通信

                        在主机下 ping www.baidu.com。如果现实0%packetloss,就表示可以正常通信。

3.3、子网掩码

                子网掩码(subnetmask)又叫网络掩码、地址掩码是一个32bit由1和0组成的数值,并且1和0分别连续。

                作用:指明IP地址中哪些位标识的是主机所在的子网以及哪些位标识的是主机号

                特点:必须结合IP地址一起使用,不能单独存在。IP地址中由子网掩码中1覆盖的连续位为子网ID,其余为主机ID。

                子网掩码的表现形式:192.168.220.0/255.255.255.0  或者  192.168.220.0/24。

                默认的子网掩码:

                A类ip地址的默认子网掩码为255.0.0.0
                B类ip地址的默认子网掩码为255.255.0.0

                C类ip地址的默认子网掩码为255.255.255.0

3.4、端口

        3.4.1、端口概述

        TCP/IP协议采用端口标识通信的进程,用于区分一个系统里的多个进程。

        特点:

                1、对于同一个端口,在不同系统中对应着不同的进程

                2、对于同一个系统,一个端口只能被一个进程拥有
                3、一个进程拥有一个端口后,传输层送到该端口的数据全部被该进程接收,同样,进
程送交传输层的数据也通过该端口被送出。

        3.4.2、端口号

                类似pid标识一个进程;在网络程序中,用端口号(port)来标识一个运行的网络程序。

                特点:

                        1、端口号是无符号短整型的类型
                        2、每个端口都拥有一个端口号
                        3、TCP、UDP维护各自独立的端口号
                        4、网络应用程序,至少要占用一个端口号,也可以占有多个端口号

                知名端口(1~1023):

                        由互联网数字分配机构(IANA)根据用户需要进行统一分配。例如:FTP—21,HTTP—80等服务器通常使用的范围;若强制使用,须加root特权。

                动态端口(1024~65535):

                        应用程序通常使用的范围,一般我们可以使用的端口号就是在这个范围,比如6666、7777、8888、9999、10000、10001。

                注意:端口号类似于进程号,同一时刻只能标志一个进程,可以重复使用。

四、数据包的组装、拆解

4.1、数据包在各层之间的传输

        

 

4.2、链路层封包格式

        

目的地址:目的MAC地址

源地址:源MAC地址

类型:确定以太网头后面跟的是哪个协议

        0x0800 ip协议

        0x0806 arp协议

        0x0835 rarp协议

注意:

1、IEEE802.2/802.3封装常用在无线
2、以太网封装常用在有线局域网

 

4.3、网络层、传输层封包格式

        

 

五、网络应用程序开发流程

5.1、TCP-面向连接

        电话系统服务模式的抽象,每一次完整的数据传输都要经过建立连接、使用连接、终止连接的过程本质上,连接是一个管道,收发数据不但顺序一致,而且内容相同,保证数据传输的可靠性。

5.2、UDP-面向无连接

        邮件系统服务模式的抽象,每个分组都携带完整的目的地址不能保证分组的先后顺序,不进行分组出错的恢复和重传不保证数据传输的可靠性。

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

        无论采用面向连接的还是无连接,两个进程通信过程中,大多采用C/S架构client向server发出请求,server接收到后提供相应的服务,在通信过程中往往都是client先发送请求,而server等待请求然后进行服务。

        

server工作过程:

         打开一通信通道并告知本地主机,它愿意在一特定端口(如80)上接收客户请求等待客户请求到达该端口,接收客户请求,并发送应答信号,激活一新的线程处理这个客户请求服务完成后,关闭新线程与客户的通信链路。

client工作过程:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值