嵌入式面经-网络协议

HTTP数据库

HTTP协议是一种应用层协议,HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP能够经过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和 Web服务器之间的数据交换。咱们在使用IE或Firefox浏览网页或下载Web资源时,经过在地址栏中输入,开头的4个字母http就至关于通知浏览 器使用HTTP协议来和host所肯定的服务器进行通信。浏览器

 

原理安全

HTTP是一个基于TCP/IP通讯协议来传递数据(HTML 文件, 图片文件, 查询结果等)的请求应答协议。服务器

HTTP协议工做于客户端-服务端架构为上。浏览器做为HTTP客户端经过URL向HTTP服务端即WEB服务器发送全部请求。Web服务器根据接收到的请求后,向客户端发送响应信息。网络

 

HTTP特色:架构

一、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法经常使用的有GET、HEAD、POST。socket

二、灵活:HTTP容许传输任意类型的数据对象。传输的类型由Content-Type加以标记。tcp

3.无链接:限制每次链接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开链接。采用这种方式能够节省传输时间。加密

4.无状态:无状态是指协议对于事务处理没有记忆,后续处理须要前面的信息,则必须重传。spa

 

http与https的区别?

HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。

 

经常使用的请求方法:

GET:请求指定的页面信息,并返回实体主体。

POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会致使新的资源的创建和/或已有资源的修改。

HEAD:相似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

PUT:从客户端向服务器传送的数据取代指定的文档的内容。DELETE:请求服务器删除指定的页面。请求报文构成

http请求由请求行、消息报头、请求正文构成。请求行以一个方法符号开头,以空格分开,后面跟着请求的URL和协议的版本。响应报文构成。HTTP响应也由状态行、消息报头、空行和响应正文构成。

 

传输层的通讯协议(TCP/UDP)

TCP提供一对一的、面向链接的可靠通讯服务。TCP创建链接,对发送的数据包进行排序和确认,并恢复在传输过程当中丢失的数据包。与TCP不一样,UDP提供一对一或一对多的、无链接的不可靠通讯服务。TCP和UDP都是IP层面的传输协议,是IP与上层之间的处理接口。

TCP是确认包的到达,因此不丢失包(数据),顺序也是好的。

UDP不会确认包的到达,因此可能会丢失数据包,固然顺序也有可能会乱。

除了这些之外:

1. TCP是面向链接(链接三次握手、断开四次挥手)的,因此稳定、可靠,那相对就慢了

好比平时的:大文件传输,右键,http等用的都是tcp协议

2. UDP是面向无链接的,因此不稳定,可是相对快,实时性高、传送数据大小限制

好比平时:作什么现场直播,视频通话啥的

(SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP创建链接时使用的握手信号。ACK (Acknowledgement)便是确认字符,在数据通讯中,接收站发给发送站的一种传输类控制字符。FIN是用来扫描保留的端口,发送一个FIN包(或者是任何没有ACK或SYN标记的包)到目标的一个开放的端口,而后等待回应。许多系统会返回一个复位标记。

在客户机和服务器之间创建正常的TCP网络链接,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。

在客户端与服务器结束TCP链接时,客户端首先发送一个FIN包到服务器,服务器收到后反馈一个ACK,而后再发送一个FIN包给客户端,客户端接收后在放送一个ACK消息回应,到此这次链接彻底断开。)

 

在TCP和UDP头部分,有“源端口”和“目标端口”段,主要用于显示发送和接收过程当中的身份识别信息。IP 地址和端口号合在一块儿被称为“套接字”。TCP端口比较复杂,其工做方式与UDP端口不一样。UDP端口对于基于UDP的通讯做为单一消息队列和网络端点来操做,而全部TCP通讯的终点都是惟一的链接。每一个TCP链接由两个端点惟一识别。因为全部TCP链接由两对 IP 地址和TCP端口惟一识别(每一个所连主机都有一个地址/端口对),所以每一个TCP服务器端口都能提供对多个链接的共享访问.

 

TCP全称是Transmission Control Protocol,中文名为传输控制协议,它能够提供可靠的、面向链接的网络数据传递服务。传输控制协议主要包含下列任务和功能:

tcp功能

对程序发送的大块数据进行分段和重组。确保正确排序及按顺序传递分段的数据。
经过计算校验和,进行传输数据的完整性检查。根据数据是否接收成功发送确定消息。经过使用选择性确认,也对没有收到的数据发送否认确认。为必须使用可靠的、基于会话的数据传输程序,如客户端/服务器数据库和电子邮件程序,提供首选传输方法。

 

TCP工做原理

首先发送方主机向接收方主机发起一个创建链接的同步(SYN)请求;接收方主机在收到这个请求后向发送方主机回复一个同步/确认(SYN/ACK)应答;发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP链接成功创建.一旦初始的三次握手完成,在发送和接收主机之间将按顺序发送和确认段。关闭链接以前,TCP使用相似的握手过程验证两个主机是否都完成发送和接收所有数据。完成三次握手,客户端与服务器开始传送数据。

 

 

UDP全称是User Datagram Protocol,中文名为用户数据报协议(报文协议:短息等)。UDP 提供无链接的网络服务,该服务对消息中传输的数据提供不可靠的、最大努力传送。这意味着它不保证数据报的到达,也不保证所传送数据包的顺序是否正确。每一个数据限制在64k之内。(存在掉帧、掉数据包)。

 

 

4、简述七层模型与四层模型的区别?列出常见的网络协议?
七层: OSI 开放系统互联参考模型,它是理论的,参考模型
物理层->数据链路层->网络层->传输层->会话层->表示层->应用层

(电脑)  (交换机) (路由器)

物理层:RJ4五、CLOCK、IEEE802.3

数据链路层:PPP、FR、HDLC、VLAN、MAC

网络层:IP、IPX、OSPF、RIP、IGRP、ICMP、ARP、RARP

传输层:TCP、UDP、SPX

会话层:NFS、SQL、NETBIOS、RPC

表示层:JPEG、MPEG、ASII

应用层:Telnet、HTTP、FTP、WWW、NFS、SMTP

四层: TCP/IP模型 ,如今实际应用的这一层
网际接口层->互联网层->传输层->应用层

物理层: 主要定义的是—传输介质 好比 RJ-45等 这一层没啥协议,都是规范啥的

数据链路层:就是平时的局域网,局域网内的数据传输 MAC层

传输层:TCP、UDP

应用层:HTTP、HTTPS、DNS、SMTP 发送邮件端口、POP3收邮件端口
FTP端口,负责传出数据, 端口负责发起和创建链接TELNET
DHCP—动态主机配置协议, 客户端请求用的67端口,服务器回应用的是68端口

常见协议:
IP (Internet Protocol)网际协议
ICMP (Internet Control Message Protocol)网络控制信息协议 (平时的ping)
IGMP (Internet Group Management Protocol)组管理协议
NAT (Network Address Translation) 网络地址转换

 

Socket(套接字层、插座---AT&T)

Socket就是为网络服务提供的一种机制。它是使用标准Unix 文件描述符 (file descriptor) 和其它程序通信的方式。套接字(socket)是通讯的基石,是支持TCP/IP协议的网络通讯的基本操做单元。它是网络通讯过程当中端点的抽象表示,包含进行网络通讯必须的五种信息:

(链接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口)。

  在Unix中,网络便是socket,并不局限在TCP/UDP,  socket能够用于自定义协议。

通讯的两端都是socket

网络通讯其实就是socket间的通讯

数据在来两个socket间经过io传输

Socket开始是纯c语言的,是跨平台的。

 

套接字有两个流:一个输入流和一个输出流

套接字的每一端都有两个流。

 

 

 

HTTP与TCP区别和联系

联系:http是要基于TCP链接基础上的,简单的说,TCP就是单纯创建链接,不涉及任何咱们须要请求的实际数据,简单的传输。http是用来收发数据,即实际应用上来的。

区别:TCP是底层通信协议,定义的是数据传输和链接方式的规范。

      HTTP是应用层协议,定义的是传输数据的内容的规范
      HTTP协议中的数据是利用TCP协议传输的,因此支持HTTP也就必定支持TCP      

      HTTP支持的是www服务 ,而TCP/IP是协议 它是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通讯协议。 TCP/IP其实是一组协议,它包括上百个各类功能的协议,如:远程登陆、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。一般说TCP/IP是Internet协议族,而不仅仅是TCP和IP。

 

为何链接的时候是三次握手,关闭的时候倒是四次握手?

答:由于当Server端收到Client端的SYN链接请求报文后,能够直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。可是关闭链接时,当Server端收到FIN报文时,极可能并不会当即关闭SOCKET,因此只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端全部的报文都发送完了,我才能发送FIN报文,所以不能一块儿发送。故须要四步握手。

 

为何TIME_WAIT状态须要通过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

答:虽然按道理,四个报文都发送完毕,咱们能够直接进入CLOSE状态了,可是咱们必须假象网络是不可靠的,有能够最后一个ACK丢失。因此TIME_WAIT状态就是用来重发可能丢失的ACK报文。

 

http://www.javashuo.com/article/p-ucrnmzvv-gg.html

相关文章
相关标签/搜索