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标准应用层协议默认端口使用:
端口号 传输层协议 应用层协议 解释 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编程之网络基础相关推荐
- 一、web简史及网络基础
web简史及网络基础 1.HTTP与web简史 1989年3月HTTP诞生. 1990 年 11 月,CERN 成功研发了世界上第一台 Web 服务器和 Web 浏 览器. 1990 年,针对 HTM ...
- 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)
一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...
- 网络编程_1(网络基础+跨主机传输)
一.网络基础 知识点回顾: 同一主机间的进程通讯方式: 1.无名管道(亲缘关系间的通讯,固定的读端和写端) 2.有名管道(半双工(因为文件可见,可再次打开交换读端写端),非亲缘关系) 3.信号 4.共 ...
- python 复习——网络编程(三)——网络基础、多线程、ftp任务铺垫
一.网络基础 学习网络编程,了解一些网络基础的知识是必不可少的,下面学习一些基础的网络知识: 1.我们的电脑里有网卡,网卡里有mac地址: 2.我到某个地方插上网线,路由器或交换机中的DHCP服务为我 ...
- 【Linux网络编程】网络基础知识
00. 目录 文章目录 00. 目录 01. 网络基础知识 02. 附录 01. 网络基础知识 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. ...
- 网络编程(网络基础、套接字Socket、数据报Datagram及其常用方法)
章节内容 套接字Socket 数据报Datagram 章节目标 了解网络通信中的IP,端口和协议 掌握套接字的使用 熟悉数据报的使用 一.网络基础 1.软件结构 C/S结构 C => Clien ...
- 【网络编程】网络基础知识
前言 小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ ...
- 【Linux网络编程】网络基础 和 socket套接字 服务器与客户端 详细案例说明
目录 前言 一.网络编程三要素 1.IP地址 2.通信协议 3.端口号 二.SOCKET套接字 SOCKET概述 SOCKET分类 三.代码实现 1.编程思路 2.建立服务器 服务器完整代码 3.建立 ...
- 【网路编程】网络基础知识(IP、子网掩码、网关等)概念概述
目录 一.IP 二.子网掩码 三.网关 四.默认网关(缺省网关.路由器.缺省路由器) 五.总结(IP.子网掩码.网关): 六.DNS服务器 七.DHCP服务器 八.MAC地址 九.服务器 十.端口号 ...
最新文章
- 手把手教你玩转SOCKET模型之重叠I/O篇(下)
- 十八、深入Python函数
- unity 实现调用Windows窗口/对话框交互
- js解决客户端与服务器时间不一致的问题
- 学生网页设计代码成品 大学生汽车网页代做 红旗汽车网页设计模板下载 HTML汽车网站制作 dreamweaver学生汽车网页设计成品
- 从SAP客户主数据里直接创建商机(Opportunity) 1
- ElementUI中使用地图实现地图位置选择_---SpringCloud Alibaba_若依微服务框架改造_ElementUI---工作笔记014
- cmd输入pip报错_安装虚拟环境+pip安装XXX包的常见操作与报错解决
- 初次体验.net Ajax无刷新技术
- OpenCV_Corner Detect with FastFeatureDetector(基于FAST的角点检测) 及 SUSAN算子
- Qt qmake和mingw32-make
- Shopnc之nginx安装
- css 网站黑白色,纯CSS代码将整个网站页面变成黑白色整站灰色
- 分享5个制定市场营销神器
- Python3.9数据库SQLite3学起(6)
- 女人需谨记的十六条健康戒律
- 130 余个相见恨晚的超实用网站
- webpack性能优化全方案
- [ATL/WTL]_[初级]_[自定义多列TreeView]
- 技嘉主板设置硬盘启动操作教程
热门文章
- python解码bash64报错:binascii.Error: Invalid base64-encoded string: number of data characters (7121) can
- 向陈越姥姥哭诉----关键活动
- 如何成为一名漏洞赏金猎人
- FreeBuds Pro 2高清空间音频怎么开?在哪里设置?
- 我从建筑工程施工员转行成了数据分析师| 求职分享
- 一个很不错的四格小漫画 - 世界人民的愿望
- JAVA:值传递和引用传递
- 什么是性能测试?这些你都知道吗?
- 通过代码来申请CA证书 -- cnblog
- 最近,软博会”收官“发布会如约而至……