网络编程 --------- 1、网络编程基础知识

1、通信  

    通信的本质其实就是某种物理信号的传输 

    通信需要具备的两个基本条件: 
        (1)媒介(物理层面),例如:线缆、光纤 
        (2)协议(软件层面),例如:网络协议 
 

2、网络 

   网络是一种连接计算机主机和设备的方式,它使数据可以透过网络媒体传播。全球互联网的始网叫做阿帕网,为了使各种不同的计算机之间互联,阿帕网制定一套计算机通信协议(即TCP/IP协议) ,它们针对计算机如何连接和组网 做出了详细的规定。  

   网络采用 分而治之 的方法 
            把网络的功能划分成不同的模块,用分层的形式有机的组合在一起。在每一层定义了很多协议 这些协议的总称 就是 TCP/IP协议 。且每层实现不同的功能,每层之间 向上一层提供服务,同时使用下一层提供的服务 

   网络体系结构 指的是网络的层次结构 和 每层使用的协议  
        两个非常重要的体系结构: 
            OSI 
            TCP/IP 


3、网络协议层次模型


        功能模块之间存在相互调用的关系  ----> 层次关系 

    1) OSI  开放式系统互联 Open System Interconnect 


                七层模型 (理想化模型)

            应用层 :提供各种应用程序的接口 
                    让你的系统知道你的数据包 是哪一个应用程序发出去的

            表示层 :转换数据格式 以及 加密解密
                    主要是对发送/接收的数据 加密解密 压缩解压缩
                    确保一个系统的应用程序发送的数据 能够被另一个系统的应用程序接收和识别

            会话层 : 负责建立连接、维护会话 和 断开连接

            传输层 :主要负责端到端的数据传输 
                    主要起到可靠传输的作用,建立端到端的连接,定义一些数据传输协议和端口

            网络层 :寻址 和 路由 
                    主要负责将数据包从源地址 传输到  目标地址 

            数据链路层 :差错校验、链路管理、流量控制 
                    主要将收到的数据包进行 物理地址(如MAC地址)的封装和解封装 
            
            物理层 :主要是定义物理设备的标准


    2)TCP/IP 四层模型  

        应用层  
            定义了各种应用程序之间的通信协议 
                如: 
                    HTTP 超文本传输协议
                    FTP 文件传输协议
                    SMTP 简单邮件传输协议 
                    SSH  安全的远程登录协议 
                    Telnet 远程登录协议 
                    ...

        传输层  
            主要负责端到端的数据传输,解决数据如何传输的问题 

                TCP :传输层控制协议 Transport Control Protocol         类似于 “打电话”
                        是一种面向连接的传输层协议,能够提供可靠的通信(数据无误、不丢失、不重                              复、按序到达) 
                        ---> 建立连接、三路握手、四次挥手、重发机制 

                UDP : 用户数据报协议 User Datagram Protocol            类似于 “发短信”
                        是一种不可靠的无连接的传输层协议,在数据发送之前,不需要连接 
                        可以进行高效的数据传输 “实时实用”

        网络层 
            主要负责将数据包从源地址 传输到  目标地址,实现不同网络之间的数据交换 
                IP协议 :Internet Protocol  互联网协议      逻辑地址(IP地址)

        网络接口层(数据链路层/物理层)  
            主要负责将数据包从网络层传递到物理层,实现物理层的传输  


    
   注意:网络数据是如何传输的? 
            分层传输 
                数据的封装和拆包的过程   
                每一层实现各自的功能和协议 


4、常见的网络设备 

    集线器(物理层) 
        把数据传输到其他的端口

    交换机(数据链路层)
        物理地址(如MAC地址)的集合 

    路由器(网络层)
        路由选择协议 负责选择最佳的路,选择网络数据的下一站 

    互联网 将所有的网络连接到一起 

    网关 实现不同网络之间的通信  


        ==========================
     ps. 路由器:是使用IP地址寻址,实现从源IP地址 到 目标IP地址的端到端的通信 
                工作原理: 
                    (1)路由器收到数据包,先会提取目标IP地址和子网掩码,计算目标的物理地址
                    (2)根据目标物理地址 查询路由表,如果找到了的目标物理地址,就从相应的出口发送数据到下一站 
                    (3)如果没有找到,就看是否有默认路由,如果有,就从默认路由发送数据到下一站 
                    (4)如果没有指定默认,向源地址发送不可达报文,通知源地址找不到目标地址 
                    (5)如果是直接路由,就直接发送数据到下一站 

5、互联网的地址 IP地址 

    IP地址 :Internet Protocol Address  互联网协议地址 

        互联网网上的每一个接口(网卡)必须要有一个唯一的ip地址 ,协议上的逻辑地址,进行网络通信 用这个ip地址 唯一标识一台计算机 

        ipv4 : 32位    4个字节
        ipv6 :128位   16个字节  

    1)ipv4地址 

        表现形式: 点分十进制 
                    如:192.168.31.111 
                        172.4.0.1 
                    最后都会转换成一个无符号的32位的整数 

        组成: 
            网络号 用来表示每一个局域网  
            主机号 用来表示某个特点的局域网中的主机号 

        分类: 
            A类地址      0 + 网络号(7bits) + 主机号(24bits) 
                        ip地址的范围                          私有ip的范围 
                        0.0.0.0或1.0.0.0 ~ 127.255.255.255    10.0.0.0 ~ 10.255.255.255 

            B类地址     10 + 网络号(14bits) + 主机号(16bits)    
                        ip地址的范围                        私有ip的范围 
                        128.0.0.0 ~ 191.255.255.255         172.16.0.0 ~ 172.31.255.255 
    
            C类地址     110 + 网络号(21bits) + 主机号(8bits)    
                        ip地址的范围                        私有ip的范围 
                        192.0.0.0 ~ 223.255.255.255         192.168.0.0 ~ 192.168.255.255 

            D类地址     1110 + 多播地址 (28bits)
                        224.0.0.0 ~ 239.255.255.255 

            E类地址     留待后用 
                        240.0.0.0 ~ 255.255.255.255 

                特殊的IP地址 
                    127.0.0.1  回环地址  本地测试用 
                    169.254.0.0 ~ 169.254.255.255  自动配置地址 本地链路地址,用于主机自动获取地址失败后的临时通信
                    192.168.0.0 ~ 192.168.255.255  局域网地址 


        问:在设置一个ip地址,如何指定哪些是主机号,哪些是网络号? 
        答:netmask子网掩码  ---> 用来指定ip地址中,哪些是网络号,哪些是主机号 ,netmask中 为1的位  表示网络号为0的位  表示主机号 。

                例子: 
                        ip   192.168.31.104
                    netmask  255.255.255.0 

                    192.168.31.104
                 &  255.255.255.0
                --------------------------
                    192.168.31.0    网络号

6、端口 

    TCP 和 UDP 采用无符号16位端口号 来表示应用程序,TCP和UDP 的端口号是独立的。ip地址用来唯一标识网络中的一台计算机,一台主机可能有多个网络应用程序 

    一台主机网络应用程序由 :   ip地址  +  传输层协议(TCP/UDP) + 端口号   共同确定的 。
    端口号 本质上是一个无符号的short类型的整数: 0 ~ 65535 

            众所周知的端口号: 1 ~ 1023  
                        20/21  ftp  
                        22  ssh  
                        23  telnet  
                        25  smtp  
                        80  http  
                        443  https  
                        53  dns  
                        69  tftp  
                        5900  vnc  
                        ... 

                注册端口号: 1024 ~ 49151   

                动态/私有端口: 49152 ~ 65535  

7、总结 

    1)网络层次模型 
        OSI  七层模型
        TCP/IP 四层模型 

    2) TCP 
       UDP 

    3) IP地址  +  端口号 


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值