TCP/IP什么的喜欢的不得了

1. OSI与TCP/IP各层的结构与功能,都有哪些协议

具体见http://blog.csdn.net/qq_34337272/article/details/69055976?locationNum=15&fps=1

2. TCP与UDP的区别

TCP UDP
面向连接 无连接(即发送数据之前不需要建立连接)
可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达 尽最大努力交付,即不保证可靠交付
面向字节流 面向报文,没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低
点到点 支持一对一,一对多,多对一和多对多的交互通信
首部开销20字节 首部开销只有8个字节
全双工的可靠信道 不可靠信道
HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议 QQ语音 QQ视频 TFTP

3. TCP报文结构

端口号:TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接
序号:用来标识TCP发端向TCP收端发送的数据字节流
确认序号:一旦连接建立,该值将始终发送
首部长度:报文头长度(单位:位)/32
(PS:4位所能表示的最大值为0b1111,转化为十进制为15,15*32/8 = 60,故报头最大长度为60字节)
Urgent:紧急指针有效性标志
Acknowledgment:确认序号有效性标志,一旦一个连接建立起来,该标志总被置为1,即除了请求建立连接报文(仅设置Syn标志位为1),其它所有报文的该标志总为1
Push:接收方应尽快将报文段提交至应用层
Reset:重置连接标志
Syn:同步序号标志
Fin:传输数据结束标志
窗口大小:接收缓冲区大小
检验和:检验和覆盖整个TCP报文段;强制字段,由发送端计算存储,由接收端进行验证
紧急指针:当Urgent标志置1时,紧急指针才有效
链路层最多能承载65535字节的IP数据包,IP头最少20个字节,TCP头最少也是20个字节,所以TCP报文段能携带的数据最多就是65535-20-20=65495字节。
MTU(最大传输单元)是一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)
如果IP层有一个数据包要传,而且数据的长度比链路层的MTU大,那么IP层就会进行分片,把数据包分成托干片,让每一片都不超过MTU。

4. TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用

TCP使用三次握手建立一个连接

第一次握手:客户端发送SYN包至服务器,并进入SYN_SENT状态,等待服务器确认
第二次握手:服务器收到客户端的SYN包,发送一个ACK,同时发送自己的SYN,此时服务器进入SYN_RCVD状态
第三次握手:客户端接收到服务器发送的SYN+ACK后,进入ESTABLISHED状态,并发送服务器SYN包的确认ACK,服务器接收到客户端ACK后,进入ESTABLISHED状态
当客户端和服务器都进入ESTABLISHED状态后,客户端和服务器之间就可以开始双向传递数据了

TCP使用四次挥手关闭一个连接

第一次挥手:主动关闭方发送一个FIN并进入FIN_WAIT_1状态
第二次挥手:被动关闭方接收到主动关闭方发送的FIN并发送ACK,此时被动关闭方进入CLOSE_WAIT状态;主动关闭方收到被动关闭方的ACK后,进入FIN_WAIT_2状态
第三次挥手:被动关闭方发送一个FIN并进入LAST_ACK状态
第四次挥手:主动关闭方收到被动关闭方发送的FIN并发送ACK,此时主动关闭方进入TIME_WAIT状态,经过2MSL时间后关闭连接;被动关闭方收到主动关闭方的ACK后,关闭连接
(PS:MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒,因而,TIME_WAIT状态一般维持在1-4分钟。)

5. TCP拥塞控制

拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
几种拥塞控制方法:慢开始( slow-start )、拥塞避免( congestion avoidance )、快重传( fast retransmit )和快恢复( fast recovery )
具体见http://blog.csdn.net/kinger0/article/details/48206999

5. TCP滑动窗口与回退N针协议

滑动窗口协议

发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。
发送方的窗口大小由接受方确定(敲黑板💯),目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。
图中的4、5、6号数据帧已经被发送出去,但是未收到关联的ACK,7、8、9帧则是等待发送。可以看出发送端的窗口大小为6(也有说窗口大小是3的,认为窗口大小看的是未收到关联ACK的帧),这是由接受端告知的(事实上必须考虑拥塞窗口cwnd,这里暂且考虑cwnd>rwnd)。此时如果发送端收到4号ACK,则窗口的左边缘向右收缩,窗口的右边缘则向右扩展,此时窗口就向前“滑动了”,即数据帧10也可以被发送。

停等协议(stop-and-wait),这时接受方的窗口和发送方的窗口大小都是1,1个比特就够表示了,所以也叫1比特滑动窗口协议。发送方这时自然发送每次只能发送一个,并且必须等待这个数据包的ACK,才能发送下一个。虽然在效率上比较低,带宽利用率明显较低,不过在网络环境较差,或是带宽本身很低的情况下,还是适用的。

后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内仍未收到确认帧,就要重发出错帧及其后的N帧。

选择重传协议:在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。

最后的最后(敲黑板💯)

7. Http的报文结构

请求报文,响应报文除了首部行不一样,别的都一样

具体见http://www.jianshu.com/p/a2c4ede32d11

8. Http的状态码含义

一、200状态码:
  成功2××: 成功处理了请求的状态码。
  1、200 :服务器已成功处理了请求并提供了请求的网页。
  2、204: 服务器成功处理了请求,但没有返回任何内容。
二、300状态码:
  重定向3×× :每次请求中使用重定向不要超过 5 次。
  1、301: 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。
  2、302: 请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL。
  3、304: 如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销。
三、400状态码:
  客户端错误4×× :表示请求可能出错,妨碍了服务器的处理。
  1、400: 服务器不理解请求的语法。
  2、403: 服务器拒绝请求。
  3、404: 服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。
  4、410 :请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,但在资源以前存在而现在不存在的情况下,有时用来替代404 代码。如果资源已永久删除,应当使用 301 指定资源的新位置。
四、500状态码:
  服务器错误5×× :表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
  1、500 :服务器遇到错误,无法完成请求。
  2、503: 服务器目前无法使用(由于超载或停机维护)。

9. Http request的几种类型

OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
GET:向特定的资源发出请求。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除Request-URI所标识的资源。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
虽然HTTP的请求方式有8种,但是我们在实际应用中常用的也就是get和post,其他请求方式也都可以通过这两种方式间接的来实现。

10. Http1.1和Http1.0的区别

HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。

11. Http怎么处理长连接

目前http1.1默认是长连接
具体见http://www.jianshu.com/p/caeec6bd1d3f

12. Cookie与Session的作用于原理

具体见http://blog.csdn.net/colzer/article/details/8686966

13. 电脑上访问一个网页,整个过程是怎么样的:DNS、HTTP、TCP、OSPF、IP、ARP

应用层
  1. DNS(53):
    我们输入的是一个URL需要转化成IP地址。首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个url发给这个配置的DNS服务器,如果能够找到相应的url则返回其ip,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看做是一个树状结构,该请求将一直发送到根直到得到结果。
  2. HTTP(80)
    HTTP协议的主要职责是生成针对目标web服务器的http请求报文(请求行、请求头部)
传输层
  1. TCP
    将http请求报文分割成报文段,按序号分为多个报文段。(三次握手)
网络层
  1. IP
    搜索目标的地址,一边中转一边传送。(路由)
  2. ARP
    因为最终都要在数据链路层上进行传输,而数据链路层并不认识IP地址,所以ARP的职责就是把IP地址转换成数据链路层认识的MAC地址。

通过数据链路层到达目标机器之后。

网络层
  1. RARP
    这其实是ARP的逆过程,将MAC地址转换成Ip地址
传输层
  1. TCP
    将接收到的报文段按序号进行重组。
应用层
  1. HTTP
    HTTP协议对http请求进行解析处理

14. Ping的整个过程。ICMP报文是什么

Ping 程序是用来探测主机到主机之间是否可通信,如果不能Ping到某台主机,表明不能和这台主机建立连接。Ping 使用的是ICMP协议,它发送ICMP回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。
ICMP报文格式:IP首部(20字节)+8位类型+8位代码+16位校验和+(不同的类型和代码,格式也有所不同)

15. C/S模式下使用socket通信,几个关键函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容