网络编程基础知识

目录

IP 域名以及端口

网络模型

协议


网络编程本质就是两个设备之间的数据交换

IP 域名以及端口

IP:现在是使用ipv4,由4个0-255之间的数字组成,在计算机内部存储只用4个字节。
​
•       1 Byte = 8 B
​
域名:就是给IP起一个名字:如163.com,qq.com
​
端口:为了一个设备上可以运行多个程序,一个设备可以有65536个端口,每个端口对应一个唯一的程序,一般0-1024被操作            系统占用。
​
如果只用与计算机之间建立连接,只用知道ip即可,如要与计算机上的程序建立连接,需要知道IP+port

网络模型

OSI七层模型 TCP/IP四层模型 TCP/IP五层模型

                                                                                应用层
              应用层    ——————————————————————>   应用层   ——————————————————>  表示层
                                                                                会话层
                                                                                
              传输层    ——————————————————————>   传输层   ——————————————————>  传输层
              
              网络层    ——————————————————————>   网络层   ——————————————————>  网络层
              
              网络接口层  ————————————————————>   数据链路层 ————————————————>  数据链路层
                                                  物理层                        物理层
                                                  
             TCP/IP四层模型                      TCP/IP五层模型                 OSI七层模型

ISO/OSI
应用层传递对象:报文
表示层应用层协议:SMTP FTP TELNET DNS TFTP RPC等
会话层
运输层传输层传输协议分组;协议:TCP,UDP
网络层网际网层(IP层)传输IP数据报;协议:ARP,RARP
数据链路层网络接口传输帧;网络接口协议(链路控制和媒体访问)
物理层硬件(物理网络)以太网,令牌环,FDDI等
物理层:为上层协议(网络接口协议)提供一个传输数据的可靠的物理媒体。
​
数据链路层:在物理层提供的服务基础上向网络层提供服务,将源自网络层的数据可靠的传输到相邻节点的目标机网络层
            
            基础数据单位是帧(数据链路层的传输单位)
            主要协议:以太网协议
            设备:网桥,交换机
           
网络层:负责对子网间的数据包进行路由选择,实现拥塞控制,网络互连等功能。
​
       基础数据单位:IP数据报
       主要协议:IP协议(因特网互联协议)    ICMP协议(因特网控制报文协议)
                 ARP协议(地址解析协议)    RARP协议(逆地址解析协议)
       设备:路由器
       网络层及以上,每一层都要对上一层发送的数据进行处理(加个头部),数据链路层不仅要加头部还要加尾部,物理        层什么都不加,只管发送数据(比特流)
       
传输层:将数据可靠的传送到相应的端口。
       负责将上层数据分段并提供端到端的,可靠的或不可靠的传输,以及端到端的差错控制和流量控制问题。
       主要协议:  TCP协议(传输控制协议)    UDP协议(用户数据报协议)
       设备:网关
    
应用层:为操作系统或网络应用程序提供访问网络服务的接口
       数据传输的基本单位是报文
       主要协议:  FTP协议(文件传输协议)    TELNET协议(远程登陆协议)
                  DNS协议(域名解析协议)    SMTP协议(邮件传送协议)
                  POP3协议(邮局协议)       HTTP协议(超文本传输协议)
​
          C(A)  ——————————————————————————————————————————>  C(B)
报文     应用层          DATA|H5                            应用层
报文段   传输层          5-PDU|H4                           传输层
数据报   网络层          4-PDU|H3                           网络层
帧       数据链路层      T2|3-PDU|H2                        数据链路层
比特     物理层          01010011101010                     物理层

协议

1.TCP/IP(传输控制协议/网际协议):
    指能够实现子啊多个不同网络之间传输信息的协议簇,由:FTP,SMTP,TCP,UDP,IP等协议构成。
    
2.IP协议(因特网互联协议):
    网络之间互联的协议,构成互联网的基础,位于网络层
    
3.ICMP协议(因特网控制报文协议):
    面向无连接的协议,用于传输出错报告控制信息(属于网络层协议)
    
4.ARP协议(地址解析协议):
    在网络中各个主机是相互信任的前提下:主机发送信息时将包含目标IP地址的ARP请求广播到局域网上的所有主机,并接    收返回信息,以此确定目标的物理地址。
    
5.RARP协议(反向地址转换协议):
    允许局域网的物理机器从网关服务器的ARP表或缓存上请求器IP地址。
    
6.TCP协议(传输控制协议):
    是一种面向连接的可靠的,基于字节流的传输层通信协议,为了在不可靠的互联网上提供可靠的端到端字节流。
    
    SYN包:TCP连接的第一个包,非常小的一个数据包,当两台计算机在TCP连接上进行会话时,连接首先一定会被初始化,          完成这项任务的包就是SYN包;一个SYN包简单的表明了另一台计算机以已经做好了会话的准备,只有发出服务请           求的计算机才会发送SYN包,如果你拒绝进来的SYN包,它将终止其他计算机打开你计算机的服务。
    ACK包:即确认字符。在数据通信中,接收站发送给发送站的一种传输类控制字符,表示发来的数据已确认接收无误。
          ACK为1表示确认号有效,为0表示报文中不含确认信息。
    FIN:表示正常关闭连接,无异常,没有数据丢失
    RST:表示复位,用来异常的关闭连接,在接收端收到RST后,不必发送ACK包确认。
    
    TCP三次握手:
                客户端           (SYN)            服务端
          报文段1  |  ——————————————————————————————>  |
                  |              (SYN+ACK)          |
                  |  <—————————————————————————————   | 报文段2
                  |             (ACK)               |
         报文段3  |  ——————————————————————————————>  |
         
         第一次握手:客户端发送SYN包到服务端,进入SYN_SEND状态,等待服务端确认。
         第二次握手:服务端接收到SYN包,必须确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK
         第三次握手:客户端接收到ACK+SYN,向服务端发送确认包ACK
        
    TCP四次挥手:
        TCP连接是双全工的,因此每个方向都需要单独关闭,这个原则就是当一方完成它的数据发送任务后就能发送一个         FIN来终止这个方向的连接,收到一个FIN就意味着这个方向上没有数据流动。
                客户端           (FIN)           服务端
          报文段1  |  ——————————————————————————————>  |
                  |              (ACK)              |
                  |  <—————————————————————————————   | 报文段2
                  |             (FIN)                |
                 |  <—————————————————————————————   | 报文段3
                 |                                   |
         报文段4  |  ——————————————————————————————>  | 
                               (ACK)
                               
         第一次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传送
         第二次挥手:服务端收到这个FIN,返回一个ACK
         第三次挥手:服务端关闭与客户端的连接,并发送一个FIN给客户端
         第四次挥手:客户端发回ACK报文确认
         
7.UDP协议:
    (1)面向无连接的,将数据封装在数据报里,不需要建立连接。
    (2)每个数据报的大小限制在64K以内。
    (3)没有连接,是不可靠协议。
    (4)没有建立连接,速度快。

客户端 服务端

应用层 ——> HTTP客户端 ——————(HTTP协议)——————> HTTP服务器

传输层 ——> TCP ——————(TCP协议) ——————> TCP

网络层 ——> IP —————— (IP协议) ——————> IP

数据链路层 —> 网络 —————— (以太网协议)—————> 网络

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值