计算机网络-tcp/ip协议

很大一部分参考阮一峰的博客:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

其个人网站:http://www.ruanyifeng.com/home.html

《SSH 入门教程》:http://www.ruanyifeng.com/blog/2020/12/ssh-tutorial.html

《Bash 脚本教程》:http://www.ruanyifeng.com/blog/2020/04/bash-tutorial.html

1.  先简单介绍一下冯诺依曼计算机模型:

计算机是如何工作的,冯诺依曼体系结构是最好的体现,如图1。冯诺依曼结构是由数学家冯·诺依曼提出,主要由运算器、控制器、存储器、输入设备、输出设备5部分组成。参考自:https://blog.csdn.net/Mydf521212/article/details/106425356/

要点

1.数据和指令一视同仁,都采用二进制存储。
2.按照程序顺序执行,也就是按照顺序从内存中一条一条读取指令。
组成

1.运算器:顾名思义,主要进行计算,算术运算、逻辑运算等都由它来完成。
2.存储器:这里存储器只是内存,不包括内存,用于存储数据、指令信息。
3.控制器:控制器是是所有设备的调度中心,系统的正常运行都是有它来调配。
4.输入设备:负责向计算机中输入数据,如鼠标、键盘等。
5.输出设备:负责输出计算机指令执行后的数据,如显示器、打印机等。
CPU

CPU(central processing unit),即中央处理器。在冯诺依曼计算机体系中,CPU一般是由控制器和运算器两部分组成。
 

2. 计算机网络:简单来说就是把一些计算机连接起来实现信息传递(通信)的系统。重点是信息传递和资源共享。

    主要学习局域网技术,报文交换,IP地址,网络模型和协议,网际互联及设备,防火墙技术等

    计算机通信的规则叫网络协议。

2.1 WIFI(无线通信技术)为啥叫WLAN

计算机网络,按照地理位置可以划分为三类:局域网、城域网、广域网。

局域网:较小的地理区域内建立的计算机网络。“WLAN”,全称是“Wireless Local Area Networks”,就是“无线局域网”的意思。

城域网,MAN(Metropolitan Area Network),若干个局域网互相连接而成,适合于大都市的较大规模的计算机网络。

广域网,WAN(Wide Area Network),涉及几个城市、一个国家、各个国家一个的计算机网络。

互联网,也叫因特网,是最大的一个网络,连接了全世界的许多网络,但并不是全部。

很多学校的机房,为了防止学生被网上那充满诱惑的信息干扰,会禁止连外网,这个机房依然是一个局域网,但不在互联网中。同理,有些城域网、广域网也不接入互联网。

万维网:www,即World Wide Web的缩写。

2.2  啥是协议

计算机设备之间信息传递需遵守的规则即“协议”,http、https只是浏览网站用的协议。“.com”表示商业机构,“.org”结尾,表示非盈利组织,大学的网站以.edu结尾,中国的大学,后面会加一个.cn,表示中国,.gov 政府机构,.net 网络机构www.csdn.net

IP地址:IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,由4个数字组成,形如“192.168.1.1”。

在网络中寻找某一台计算机都是依靠它的IP地址。(用域名或计算机名定位主机其实也是通过某种服务转成IP地址后再找到该主机的)

网络ID:网络ID标识了计算机或网络设备所在的网段;
主机ID:主机ID标识了特定的主机或网络设备

查看自己电脑的IP地址:ipconfig

2.3 基本概念

IP 用于计算机之间的通信。IP 是无连接的通信协议。

IP地址网络上每个节点都必须有一个独立的Internet地址(也叫IP地址),每个计算机必须有一个IP地址才能连入因特网。(IP地址是逻辑地址,MAC地址是物理地址。)

TCP 用于应用程序之间的通信。当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。

域名系统(Domain Name System, DNS):12位的地址不好记忆,域名提供主机名称和IP地址之间的映射,如www.baidu.com,用DNS 服务器将域名翻译为 TCP/IP 地址。

TCP/IP:TCP/IP 意味着 TCP 和 IP 在一起协同工作。TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。IP 负责计算机之间的通信。TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。IP 负责将包发送至接受者。

 

TCP三次握手:所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

HTTP协议:它是互联网协议(Internet Protocol Suite),一个网络通信模型,是互联网的一个基本的构架。HTTP是一个属于应用层的面向对象的协议,工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。具体的有超文本传输安全协议:https,即Hyper Text Transfer Protocol Secure。 如https://www.baidu.com/    超文本传输协议:http,相对不安全一些。如http://www.tsinghua.edu.cn

HTTP协议定义了内容的格式,这是一个应用层的协议,应用层协议的内容需要通过传输层在浏览器和服务器之间传送,TCP/IP协议是ISO网络参考模型的一种实现。在TCP/IP协议中,与网络程序员相关的主要有两层:传输层和应用层。传输层协议负责解决数据传输问题,包括数据通行的可靠性问题。传输层依赖更底层的网络层来完成实际的数据传输,在TCP/IP网络协议中,负责可靠通信的传输层协议为TCP协议。而网络层一般用网络驱动来实现,普通的程序员不会涉及;在TCP/IP协议中,网络层的协议为IP协议。

客户端、web服务器、HTTP三者之间的联系:(1)客户端与web服务器工作过程当浏览器寻找到Web服务器的地址之后,浏览器帮助我们把对服务器的请求转换为一系列参数发送给Web服务器。服务器受到浏览器发来的请求参数之后,将会分析这些数据,并进行处理。然后向浏览器回应处理的结果,也就是一些新的数据;这些数据通常是HTML网页或者图片。浏览器收到之后,解析这些数据,将它们呈现在浏览器的窗口中,这就是我们看到的网页。(2)客户端与web服务器遵守共同标准:HTTP协议
什么是Socket:套接口,形象化为邮筒。socket是对TCP/IP协议的封装,它的出现只是使得程序员更方便地使用TCP/IP协议栈而已。socket本身并不是协议,它是应用层与TCP/IP协议族通信的中间软件抽象层,是一组调用接口(TCP/IP网络的API函数)。

TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”

浏览器与服务器图解:HTTP协议就是TCP/IP协议中专门用于浏览器与Web服务器之间通信的应用层协议。应用层协议依赖于传输层协议完成数据传输,传输层协议依赖于网络层协议王城数据传输,他们之间的关系如下图(浏览器与服务器之间网络通信的传输过程):

3.TCP/IP协议

TCP是英文Transmission Control Protocol的缩写,中文翻译为“传输控制通讯协议”。IP是Internet Protocol的缩写,中文翻译成“国际互联网通讯协议”。TCP/IP协议把不同型号、不同厂家、运行不同操作系统的计算机之间通过TCP/IP协议栈实现相互间的通信。

互联网的实现,分成好几层,每一层都有自己的功能。TCP/IP将计算机网络体系分为四层:网络接口层(链路层),网际层,运输层,应用层。

1、应用层:直接为应用进程提供服务的。例如 HTTP(Web文档的请求和传送)、DNS(域名系统)、SMTP(电子邮件报文的传输),FTP(两个端系统的文件传输) 等。数据单位为报文。

2、传输层:运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供可靠完整性服务,UDP 主要提供及时性服务。网络层负责的是点到点的协议, 即只到某台主机, 传输层要负责端到端的协议, 即要到达某个进程。

3、网络层:在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。

4、网络接口层:由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。

           

开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI)将计算机网络体系分为七层。两种划分模型的对应关系如下图所示。

     

3.1 TCP/IP模型的层间通信与数据封装

数据包在网络设备之间进行传输的过程中,为了保证数据包准确的发送到目的地,发送端会对数据包进行封装。

数据封装:在发送的数据包上附加TCP或者是UDP的包头形成数据段segment,网络层会添加IP包头形成数据包Packet,数据链路层会给数据添加以太网包头和FCS包尾,形成数据帧Frame,最后转换成二进制的比特流通过物理线路传到接收方。这个操作过程就叫做数据封装,而对数据包进行处理时通信双方所遵循和协商好的规则称为协议。

解封装:接收端收到数据后会进行解封装,从物理层开始,进行与发送端相反的操作,一层层去掉包头,最终使应用层程序获取到数据信息,使得发送方和接收方数据通信完成。

3.2 抓包了解数据结构

传输层封装的是TCP协议,可以看到源端口号,目标端口号80端口,如下图所示为TCP包头。

网络层封装的是IP包头,包括IPV4的版本,首部长度,协议类型是TCP协议,源IP地址,目标IP地址等,如下图所示为IP包头。

以太网包头如下图所示

通过Wireshark(前称Ethereal)抓取的HTTP协议的完整报文如下图所示。

参考:https://blog.csdn.net/github_34606293/article/details/78230456

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值