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标准应用层协议默认端口使用:

    端口号 传输层协议 应用层协议 解释
    80 TCP HTTP 互联网应用最广泛一种网络协议
    21 TCP FTP FTP的传输效率非常高,所以在网络上传输打的文件时,一般也采用该协议
    23 TCP TELNET 互联网远程登录服务的标准协议和主要方式
    443 TCP HTTPS 提供加密和通过安全端口传输的另一种HTTP。对一些安全较高的网站,如银行,证券等
    69 UDP TFTP 简单文件传输协议,主要用于轻量级设备启动时从网络下载启动代码
    22 TCP SSH SSH是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议,利用SSH协议可以有效防止远程管理过程中信息泄露问题
    25 TCP SMTP 简单邮件传输协议,它是一组用于从源地址到目的地址传送邮件的规则
    7001 TCP HTTP 网络服务器WebLogic的默认端口
    9080 TCP HTTP 网络服务器WebSphere的默认端口
    8080 TCP HTTP 很多开源网络服务器的默认端口,例如:Tomcat等
    5432 TCP Postgres PostgreSQL数据库的默认连接端口
    1521 TCP Oracle Oracle数据库的默认连接端口
    1080 UDP QQ 腾讯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等。

web编程之网络基础相关推荐

  1. 一、web简史及网络基础

    web简史及网络基础 1.HTTP与web简史 1989年3月HTTP诞生. 1990 年 11 月,CERN 成功研发了世界上第一台 Web 服务器和 Web 浏 览器. 1990 年,针对 HTM ...

  2. 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

    一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...

  3. 网络编程_1(网络基础+跨主机传输)

    一.网络基础 知识点回顾: 同一主机间的进程通讯方式: 1.无名管道(亲缘关系间的通讯,固定的读端和写端) 2.有名管道(半双工(因为文件可见,可再次打开交换读端写端),非亲缘关系) 3.信号 4.共 ...

  4. python 复习——网络编程(三)——网络基础、多线程、ftp任务铺垫

    一.网络基础 学习网络编程,了解一些网络基础的知识是必不可少的,下面学习一些基础的网络知识: 1.我们的电脑里有网卡,网卡里有mac地址: 2.我到某个地方插上网线,路由器或交换机中的DHCP服务为我 ...

  5. 【Linux网络编程】网络基础知识

    00. 目录 文章目录 00. 目录 01. 网络基础知识 02. 附录 01. 网络基础知识 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. ...

  6. 网络编程(网络基础、套接字Socket、数据报Datagram及其常用方法)

    章节内容 套接字Socket 数据报Datagram 章节目标 了解网络通信中的IP,端口和协议 掌握套接字的使用 熟悉数据报的使用 一.网络基础 1.软件结构 C/S结构 C => Clien ...

  7. 【网络编程】网络基础知识

    前言 小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ ...

  8. 【Linux网络编程】网络基础 和 socket套接字 服务器与客户端 详细案例说明

    目录 前言 一.网络编程三要素 1.IP地址 2.通信协议 3.端口号 二.SOCKET套接字 SOCKET概述 SOCKET分类 三.代码实现 1.编程思路 2.建立服务器 服务器完整代码 3.建立 ...

  9. 【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述

    目录 一.IP 二.子网掩码 三.网关 四.默认网关(缺省网关.路由器.缺省路由器) 五.总结(IP.子网掩码.网关): 六.DNS服务器 七.DHCP服务器 八.MAC地址 九.服务器 十.端口号 ...

最新文章

  1. 手把手教你玩转SOCKET模型之重叠I/O篇(下)
  2. 十八、深入Python函数
  3. unity 实现调用Windows窗口/对话框交互
  4. js解决客户端与服务器时间不一致的问题
  5. 学生网页设计代码成品 大学生汽车网页代做 红旗汽车网页设计模板下载 HTML汽车网站制作 dreamweaver学生汽车网页设计成品
  6. 从SAP客户主数据里直接创建商机(Opportunity) 1
  7. ElementUI中使用地图实现地图位置选择_---SpringCloud Alibaba_若依微服务框架改造_ElementUI---工作笔记014
  8. cmd输入pip报错_安装虚拟环境+pip安装XXX包的常见操作与报错解决
  9. 初次体验.net Ajax无刷新技术
  10. OpenCV_Corner Detect with FastFeatureDetector(基于FAST的角点检测) 及 SUSAN算子
  11. Qt qmake和mingw32-make
  12. Shopnc之nginx安装
  13. css 网站黑白色,纯CSS代码将整个网站页面变成黑白色整站灰色
  14. 分享5个制定市场营销神器
  15. Python3.9数据库SQLite3学起(6)
  16. 女人需谨记的十六条健康戒律
  17. 130 余个相见恨晚的超实用网站
  18. webpack性能优化全方案
  19. [ATL/WTL]_[初级]_[自定义多列TreeView]
  20. 技嘉主板设置硬盘启动操作教程

热门文章

  1. python解码bash64报错:binascii.Error: Invalid base64-encoded string: number of data characters (7121) can
  2. 向陈越姥姥哭诉----关键活动
  3. 如何成为一名漏洞赏金猎人
  4. FreeBuds Pro 2高清空间音频怎么开?在哪里设置?
  5. 我从建筑工程施工员转行成了数据分析师| 求职分享
  6. 一个很不错的四格小漫画 - 世界人民的愿望
  7. JAVA:值传递和引用传递
  8. 什么是性能测试?这些你都知道吗?
  9. 通过代码来申请CA证书 -- cnblog
  10. 最近,软博会”收官“发布会如约而至……