web编程之网络基础

web编程之网络基础

一、TCP、IP网络:

  • TCP/IP是"Transmission Control Protocol/Internet Protocol"的简写,翻译成中文为传输控制协议/互联网络协议
  • TCP/IP是一种网络通信协议,它规范了网络上所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式及传送方式。
  • TCP/IP 是Internet 的基础协议,也是一种计算机数据打包和寻址的标准方法

1.1:计算机网络综述:

  • 计算机网络指将地理位置不同、具有独立功能的多台计算机及外部设备,通过通信线连接起来,再网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
  • 主机主要分为两种:服务器和客户端。再Internet中提供服务的主机叫做服务器;通过访问服务器从而获得有用信息的主机叫做客户端。
1.网络分层:
  • 每一层的功能都是相互独立,这使得它们可以仅完成自己的任务,比如传输、编码等。

  • TCP/IP将网络分为4层结构,分别是应用层、传输层、网络层、接口层

    应用层HTTP、SMTP等,是网络应用开发的重点
    传输层TCP或UDP
    网络层IP
    接口层处理物理细节

TCP/IP网络分层解释如下:

  • 应用层:为用户的进程提供服务,应用层负责发送及接收什么数据、如何解释数据、如何呈现数据、如何加密数据等问题,是网络应用程序开发者重点打交道的对象
  • 传输层:为两个主机的不同端口之间的通信提供服务。端口是一种在同一个主机内的不同通道之间进行寻址的方式。传输层的发送方与接收方在物理上无须相邻。TCP/IP的传输层包括2中协议:TCP/UDP。TCP提供可靠的有序传输,UDP提供非可靠的传输
  • 网络层:为两个主机之间提供通信服务。网络层定义了数据如何被封装为传送报,并且定义了不同主机之间寻址方式
  • 接口层:负责相邻物理设备之间的信息传输。接口层的工作非常多且复杂,它需要完成接口层的数据组装,加入必要的控制和校验数据,并且将二进制数据流(0/1)转换为物理链上的标准水平。
2.网络设备:
  • 网络设备及部件是连接到网络的物理实体

  • 网络传输及数据交换作用的设备,具体有:集线器、交换机、网桥、路由器、网关、网络接口卡、无线接入点、调制解调器、光缆等

    集线器:是接口层设备。集线器是网络互连的最简单设备,它接收并识别网络信号,然后再生成信号并将其发送到网络的其他分支上。

    交换机:是接口层设备,也是网络互联中最常用的设备。

    网桥:是接口层设备。网桥通常用于物理异构的网络之间相互连接,比如以太网和令牌网之间。

    路由器:是网络层设备。路由器是互联网的主要结点设备,通过发送者、接收者的IP地址和路由算法决定数据的收发路径。

    网关:是一个通用概念,主要指不同网络环境之间协议转换,一般为应用层。

    调试解释器:‘俗称:猫’,是接口层设备,用于连接计算机网络与传统通信网。‘猫’将计算机的数字信号转译成能够再常规电话线中传输模拟信号。因为模拟信道的传输距离更长,所以长距离的网络传输一般都需要经过’猫’转换。常见的家用’猫’:56k猫、ADSL猫、光钎猫。

    无线接入点:是接口层设备。将有线网络转为无线网络,最常用的无线接入点 WIFI。

    防火墙:是传输层及应用层的设备。防火墙通常位于不同网络的边界处,主要防止恶意程序及数据进入内部网路,或者防止机密信息泄露到广域网中。

3.IP地址:
  • 网络地址:是一个网络层概念,是互联网上主机再网络中具有逻辑地址,Internet 上采用IP地址表示网络地址。当前两种形式IP地址:IPV4、IPV6
4.域名:
  • 由于IP地址由纯数字组成,很难让人记忆,且不能表达功能、地理位置等附加含义,所以再TCP/IP网络形成不久,标准化组织就定义了域名这种主机地址表达方式
  • 域名:是一个应用层概念,用于再数据传输时标识计算机的电子方位(有时也指地理位置、地理上的域名或有行政自主权的一个地方区域)。简单理解:域名是一个IP地址’面具’。
  • 域名中的标号都由英文字母和数字组成,每个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边
5.URL:
  • 为统一资源定位符,用来表示Internet上资源位置的标准。资源位置包括资源所在的主机及其在主机内的访问路径。这里所说的资源是指Internet上任何可访问的对象,包括文本、图像、视频流等。URL标准形式如下:

    [协议:]//[主机]:[端口]/[路径]?[参数]
    # 举个栗子:
    https://51easymaster.com/?only=0
    

    [协议]可以是:HTTP、FTP等应用层协议;

    [主机]:是域名或IP地址;

    [端口]:是传输层端口号;

    [路径]:是以斜杠, '/'分割的主机内的路径;

    [参数]:是以’&'分割的若干键值对。

1.2:TCP和UDP:

  • TCP/IP的传输层是网络中承上启下的关键一层,向上对应用层提供服务,向下将应用信息封装为网络信息。传输层连接主机之间的进程,同一主机中不同进程的网络通信端口进行区分,所以传输层为主机提供的是端口到端口的服务
1.端口:
  • 这里所说的端口,不是计算机硬件I/O端口,而是软件级概念。就像IP地址是网络层的寻址方式,端口是传输层的寻址方式。端口是一个16位二进制数表达的正整数,数字范围为0~65535。

  • 注意:TCP和UDP可以在同一主机上使用相同的端口而互不干扰。例如TCP有一个66号端口,UDP也可以有一个66号端口,两者并不冲突。

  • Internet标准应用层协议默认端口使用:

    端口号传输层协议应用层协议解释
    80TCPHTTP互联网应用最广泛一种网络协议
    21TCPFTPFTP的传输效率非常高,所以在网络上传输打的文件时,一般也采用该协议
    23TCPTELNET互联网远程登录服务的标准协议和主要方式
    443TCPHTTPS提供加密和通过安全端口传输的另一种HTTP。对一些安全较高的网站,如银行,证券等
    69UDPTFTP简单文件传输协议,主要用于轻量级设备启动时从网络下载启动代码
    22TCPSSHSSH是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议,利用SSH协议可以有效防止远程管理过程中信息泄露问题
    25TCPSMTP简单邮件传输协议,它是一组用于从源地址到目的地址传送邮件的规则
    7001TCPHTTP网络服务器WebLogic的默认端口
    9080TCPHTTP网络服务器WebSphere的默认端口
    8080TCPHTTP很多开源网络服务器的默认端口,例如:Tomcat等
    5432TCPPostgresPostgreSQL数据库的默认连接端口
    1521TCPOracleOracle数据库的默认连接端口
    1080UDPQQ腾讯QQ软件的默认通信端口
2.TCP:
  • TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠、基于字节流的传输层通信协议

  • TCP的特性如下:

    有序性:为每个数据包编排序号,使接收端能够判断先后到达的次序混乱的数据包原本顺序。

    正确性:TCP用一个checksum函数来检验数据是否有错误,在发送和接收时都要计算校验和,这是的接收端能够判断数据是否在传输过程中被破坏。

    可靠性:发送端采用超时重传并有确认机制识别错误或丢失数据,进行重发。

    可控性:接收端和发送端的网络质量通常不同,TCP采用滑动窗口协议和拥塞控制算法使用数据的发送速度达到合理值。

  • TCP采用面向连接的方式收发数据,在收发数据之前需要先建立连接,在数据传输之后释放连接,如图所示:
    在这里插入图片描述
    建立连接的三次握手过程如下:

  • 建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器确认。

  • 服务器收到SYN包,反馈给客户端一个SYN+ACK包,此时服务器进入SYN_RECV状态。

  • 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,客户端和服务器同时进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

建立连接后双发相互发送消息。

消息完成后可由任意一方发送关闭连接请求,关闭连接的过程如下:

  • 关闭请求方(比如客户端)向另一方发送(比如服务器)一个带有FIN附加标记的报文段。
  • 服务器收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接,使应用程序做相应的清理工作。
  • 服务器的应用程序清理工作完成后,向客户端发送一个FIN报文段。
  • 客户端收到这个FIN报文段后,向服务器发送一个ACK,表示连接彻底释放。
3.UDP:
  • UDP(User Datagram Protocol)是一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务

  • UDP的特性如下:

    1.数据可以随时发送、接收、没用建立、断开连接的过程,因此主机不需要维护复杂的连接状态。

    2.UDP不保证数据的可靠传输,仅仅尽最大可能进行发送。

    3.没有拥塞控制算法控制收发速率,程序需在应用层自行控制。

    4.发送方的UDP对应用程序交付的报文,在添加首部后向下交付给IP层。既不拆分,也不合并。因此,应用程序需要选择合适的报文大小。

  • UDP协议适用应用场景:

    吞吐量大(因为只做轻量级控制)、可以承受信息丢失(因为传输不可靠)。在网络状况良好的情况下,UDP的丢包率在实际情况下也非常少,所以仍有很多经典协议采用UDP进行传输,比如SNMP、NFS、DNS、BOOTP等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值