三次握手

计算机网络高频面试题解析(含书籍推荐)

三世轮回 提交于 2020-02-03 21:14:18
网络原理是工程师的必须了解的计算机基础知识,先推荐下两本好书,《图解HTTP》和《图解TCP/IP》。 《图解TCP/IP》讲解网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,《图解HTTP》对HTTP协议进行了全面系统的介绍,这两本书的特点都是在讲解的同时,配上了大量漫画通信图例,读起来比较轻松。 高频面试题解析 1、OSI七层网络模型的结构与功能 OSI是一个开放性的通信系统互连参考模型,OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。 OSI是一个定义得非常好的协议规范,但是比较复杂所以一般使用TCP/IP 的四层模型来描述。 就目前来说,TCP/IP 的四层模型更受广泛认可,在计算机网络中,大家更多喜欢使用 TCP/IP 模型来进行划分和理解。因为表示层、会话层以及应用层之间的界限在实际应用中并不清晰,让人不好区分。 2、TCP/IP四层协议有哪些结构与功能 TCP/IP 参考模型是一个包含了不同网络层次的一系列网络协议的集合。一般 TCP/IP 参考考模型分为四层,从下到上分别是,数据链路层、网络层、传输层和应用层。 也有将它分为五层的,也就是加上物理层,不过对于大部分的计算机网络应用,软件工程师一般都是不关心物理层。 应用层提供了不同应用数据包的处理协议

第二十九篇 -- UDP和TCP

ぐ巨炮叔叔 提交于 2020-02-03 20:28:32
最近在写WIFI模块,所以就想明确一些TCP和UDP的区别,发现以前的理解还是有点误区。现在重新学习。 相同点 UDP协议和TCP协议都是传输层协议 TCP(Transmission Control Protocol, 传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP(User Data Protocol,用户数据报协议)是一个简单的面向数据报的传输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户与服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快。 不同点 1、报头不同 2、特点不同 3、协议不同 UDP UDP数据报最大长度64K(包含UDP首部),如果数据长度超过64K就需要在应用层手动分包,UDP无法保证包序,需要在应用层进行编号。 特点 1、无连接:知道对端的IP和端口号就直接进行运输,不需要建立连接。 2、不可靠:没有确认机制,没有重传机制;如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息。 3、面向数据报:不能够灵活的控制读写数据的次数和数量,应用层交给UDP多长的报文

TCP和UDP区别

跟風遠走 提交于 2020-02-03 20:26:21
TCP( Transmission Control Protocol ,传输控制协议) TCP协议是一种可靠的、一对一的、面向有连接的通信协议,TCP主要通过下列几种方式保证数据传输的可靠性: (1)在使用TCP协议进行数据传输时,往往需要客户端和服务端先建立一个“通道“、且这个通道只能够被客户端和服务端使用,所以TCP传输协议只能面向一对一的连接。 (2)为了保证数据传输的准确无误,TCP传输协议将用于传输的数据包分为若干个部分(每个部分的大小根据当时的网络情况而定),然后在它们的首部添加一个检验字节。当数据的一个部分被接收完毕之后,服务端会对这一部分的完整性和准确性进行校验,校验之后如果数据的完整度和准确度都为100%,在服务端会要求客户端开始数据下一个部分的传输,如果数据的完整性和准确性与原来不相符,那么服务端会要求客户端再次传输这个部分。 客户端与服务端在使用TCP传输协议时要先建立一个“通道”,在传输完毕之后又要关闭这“通道”,前者可以被形象地成为“三次握手”,而后者则可以被称为“四次挥手”。 通道的建立——三次握手: (1)在建立通道时,客户端首先要向服务端发送一个SYN同步信号。 (2)服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK确认信号。 (3)当服务端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建立起来。 通道的关闭—

nmap所有参数详解

时间秒杀一切 提交于 2020-02-03 19:30:27
QQ:1258496116 端口:80http 443https 53dns 25smtp 22ssh 23telnet20、21ftp 110pop3 119nntp 143imap 179bgp 135-139、445RPC 500vpn 5060voip 123ntp) nmap ip地址/域名 支持CIDR.(连续的ip用-连接)【空选项主机存活、SYN端口】 域名解析: n 不用解析域名。 R为所有目标解析域名。 --system-dns使用系统域名解析器解析(慢)。 --dns-server 服务器 选择dns解析。 时间性能优化: -T 时间优化(0-5)(paranoid|sneaky|polite|normal|aggressive|insane) -F快速扫描。 -oN %D-%T .nmap周期性的扫描比较。 ndiff #?b 1.xml ?o2.xml 比较文件(-h帮助-v详细?text文本格式?xml格式) --max-retries调整重传次数。 --min-hostgroup/--max-hostgroup size 设置组的大小 --min-parallelism/--max-parellelism time指定时间内的探针数 --min-rtt-timrout/--max-rtt-timrout/initial-rtt-timrouttime

python网络编程

谁说我不能喝 提交于 2020-02-03 15:17:27
一:进程间的通信   1.本地进程间的通信   消息传递(管道,FIFO,消息队列)   同步(互斥量,条件变量,读写锁,文件和写记录锁,信号量)   共享内存(匿名的和具名的) 远程过程调用      2.网络进程间的通信   网络上的进程对得唯一区分,这样才能进行网络间的通信,比如QQ,微信聊天等等。而可以唯一区分的是进程的ip地址(互联网协议地址),协议,端口(设备与外界通讯的出口)。Python进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信。 二:软件开发的架构   1.B/S架构(浏览器端、服务器端)   2.C/S架构(客户端、服务器端)   2.1 socket套接字就是,应用程序通过套接字向网络发出请求或者应答网络请求,使主机间或者计算机间的程序可以相互通信。 应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式,它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据,以符合指定的协议。 所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。   2.2 socket()函数     socket

HTTP

こ雲淡風輕ζ 提交于 2020-02-02 23:43:40
http web服务,是目前最重要的服务应用 平台 LNMP HTTP服务程序 Linux: Apache Nginx LAMP LNMP Windows: IIS 从Linux平台移植的Apache,Nginx HTTP协议,超文本传输协议,Hyper Text Transfer Protocol 1.什么是超文本? 包含有超链接(Link)和各种多媒体元素标记的文本.这些超文本文件彼此链接,形成网状(Web),因此又被称为网页( Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。 2.什么是URL,统一资源定位符 一般首页,都会使用index.html index.php index.jsp 3.超文本传输http协议是什么? 是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能 http工作原理 1.用户通过浏览器输入URL,http://www.oldboyedu.com 2.DNS解析将域名解析为IP 3.用户通过IP和web服务器建立TCP连接 4.通过HTTP发送请求 5.服务器解析请求,响应报文 6.浏览器收到响应报文,将代码解析成我们能看懂的页面 7.TCP断开 http的短连接:建立一次tcp的连接,发起一次http的请求,结束,tcp断开。 http的长连接

HTTP详解-工作原理

可紊 提交于 2020-02-02 05:57:45
1. HTTP简介 HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机 正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 在了解HTTP如何工作之前,我们先了解计算机之间的通信。 2. 计算机相互之间的通信 互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。实际上这个是两个协议: TCP : Transmission Control Protocol 传输控制协议和IP: Internet Protocol 网际协议。 IP:计算机之间的通信 IP协议是计算机用来相互识别的通信的一种机制,每台计算机都有一个IP.用来在internet上标识这台计算机。 IP 负责在因特网上发送和接收数据包。通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。IP 负责将每个包路由至它的目的地。 IP协议仅仅是允许计算机相互发消息,但它并不检查消息是否以发送的次序到达而且没有损坏(只检查关键的头数据)。为了提供消息检验功能,直接在IP协议上设计了传输控制协议TCP. TCP : 应用程序之间的通信

HTTP详解(1)-工作原理

折月煮酒 提交于 2020-02-02 05:55:20
出处 http://blog.csdn.net/hguisu/article/details/8680808#t0 1. HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 在了解HTTP如何工作之前,我们先了解计算机之间的通信。 2. 计算机相互之间的通信 互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。实际上这个是两个协议: TCP : Transmission Control Protocol 传输控制协议和IP: Internet Protocol 网际协议。 IP:计算机之间的通信 IP协议是计算机用来相互识别的通信的一种机制,每台计算机都有一个IP.用来在internet上标识这台计算机。 IP 负责在因特网上发送和接收数据包。通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。IP 负责将每个包路由至它的目的地。 IP协议仅仅是允许计算机相互发消息,但它并不检查消息是否以发送的次序到达而且没有损坏(只检查关键的头数据)

前端需要了解的http知识

谁说我不能喝 提交于 2020-02-02 05:07:13
一、五层协议 1. OSI(Open System Interconnection 开放式系统互联)七层协议 1)应用层 2)表示层 3)会话层 4)传输层 5)网络层 6)数据链接层 7)物理层 2. TCP/IP四层网络协议 (Transmission Control Protocol 传输控制协议) 1)应用层 2)运输层 3)网络层 4)网络接口层 3. 折中后的五层协议 1)应用层(dns,http) DNS解析成IP并发送http请求 2)传输层(tcp,udp) 建立tcp连接(三次握手) 3)网络层(IP,ARP) IP寻址 4)数据链路层(PPP) 封装成帧 5)物理层(利用物理介质传输比特流) 物理传输(然后传输的时候通过双绞线,电磁波等各种介质) 简括: 从应用层的发送http请求,到传输层通过三次握手建立tcp/ip连接,再到网络层的ip寻址,再到数据链路层的封装成帧,最后到物理层的利用物理介质传输。 二、HTTP状态码 1XX 用于指定客户端相应的某些动作 2XX 用于表示成功 3XX 用于已经移动的文件并且被包含在定位头信息中指定心的地址信息(重定向,为了完成请求,必须进一步执行的动作) 4XX 用于指出客户端错误 5XX 用于支持服务器错误 100 继续;101 分组交换协议 200 ok;201 被创建;202 被采纳;203 非授权信息;204

HTTP详解(1)-工作原理

末鹿安然 提交于 2020-02-02 04:37:42
1. HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 在了解HTTP如何工作之前,我们先了解计算机之间的通信。 2. 计算机相互之间的通信 互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。实际上这个是两个协议: TCP : Transmission Control Protocol 传输控制协议和IP: Internet Protocol 网际协议。 IP:计算机之间的通信 IP协议是计算机用来相互识别的通信的一种机制,每台计算机都有一个IP.用来在internet上标识这台计算机。 IP 负责在因特网上发送和接收数据包。通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。IP 负责将每个包路由至它的目的地。 IP协议仅仅是允许计算机相互发消息,但它并不检查消息是否以发送的次序到达而且没有损坏(只检查关键的头数据)。为了提供消息检验功能,直接在IP协议上设计了传输控制协议TCP. TCP : 应用程序之间的通信 TCP确保数据包以正确的次序到达