我是靠谱客的博主 高大菠萝,最近开发中收集的这篇文章主要介绍TCP/IP面试必备,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

数据流走向可以看成协议栈,后进先出

 

物理层 提供比特流传输  RS232  RS449  RJ45  比如网卡

数据链路层传输单位frame(帧) 介质访问,链路管理

网络层  寻址和路由选择packet  子网数据路由选择 分组重组

IP  IPX  RIP   OSPF  ICMP  IGMP 路由器属于网络层

 

传输层  建立端到端链接   检测路由器丢弃的包,产生重传与排序乱序的数据包

会话层 spdu  建立维护管理会话  

表示层  ppdu 处理数据格式数据加密 格式转换  

应用层apdu  提供应用程序间的通信

http https ftp telnet ssh smtp pop3 

 

应用协议:http,smtp,ftp,telnet,snmp

传输协议:tcp udp

tcp/udp常è§åºç¨

网际协议:ip,icmp,arp

路由控制协议:rip,ospf,bgp

 

应用层:DNS URL HTML  HTTP  TLS/SSL SMTP POP IMAP MIME TELNET SSH FTP SNMP MIB SIP RTP LDAP

传输层:TCP UDP UDP-Lite SCTP DCCP

网络层:ARP IP ICMP

 

网络层

ip属于非可靠性网络协议,不会重发丢失的数据

icmp 用来检测网络安全状况,数据包未送达时发送异常通知

arp 从分组数据包的ip地址中解析出mac地址

传输层

tcp不适合视频会议等场合使用  不能用于广播多播,因为是面向一对一的

udp常用于分组数据较少或者多播、广播通信以及视频通信等多媒体领域。

应用层

http应用层

html表示层

 

其他

SNMP管理的主机、网桥、路由器等称为 SNMP代理agent

代理端保存网络接口信息,通信数据量,异常数据量以及设备温度等,可以通过MIB访问(管理信息基础base)

snmp为应用层 MIB为表示层

 

 

 

封装

 

用户数据-》appi首部  ——》tcp首部 -》ip首部_>  以太网首部

 

以太网首部14 字节  ip  20  tcp 20  以太网尾部 4

分用( demultiplexing)(解封)

根据端口号进行分用,提交给哪一个应用程序

 

周知端口 0-1023

注册端口 1024-49151

动态或私有或临时端口  49152-65535

实际上1024就开始分配动态端口,但是sun得rpc从32768开始

 

MTU 最大传输单元 unit

以太网  和IEEE802.3数据帧限制分别是 1500  1492

两台通信主句路径中最小的MTU  叫做路径MTU 不可以超过,会产生分片,降低通信效率

 

以太网帧的格式

 

 

IP地址转换为MAC地址 :::  地址解析协议  ARP

MAC --》IP    RARP  反向地址解析

 

 ICMP  用于传递差错信息  时间 回显  网络信息等控制数据  IP->MAC 出错就会用到

ping 也是用到ICMP协议   属于IP 层协议

 

 

 

例如ping程序数据在网络中的传输过程

 

 

RARP   

一般应用在无盘工作站(没有办法保存地址缓存),但是知道自己的MAC地址

首先向RARP服务器发送请求

 

 

IP数据报格式

总长度0-655535   16位长度

分片也会使用同一个标识号

服务类型 TOS

最小延迟D  最大吞吐量T  最高可靠性R 最小费用F

来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64

TTL (time to live)

表示数据报最多可经过路由器的数量  如果TTL减为0,丢弃并发送ICMP报文通知源主机

网际校验和(internet checksum)

 

ip首部(不含校验和)反码+0x1111=发送端校验和                (2)

IP首部=ip首部(不含校验和)+发送端校验和

ip首部(不含校验和)反码+发送端校验和反码=接收端校验和    (1)

(1)-(2)

发送端校验和反码-0x1111=接收端校验和 - 发送端校验和

发送端校验和反码+发送端校验和  - 0x1111 =接收端校验和  (3)

ip首部(不含校验和)反码+(ip首部(不含校验和)反码+ 0x1111)反码=接收端校验和

ip首部(不含校验和)反码+ip首部(不含校验和) +0 =接收端校验和

0x0101

0x1010

0x1111

不是完备的校验

 

TCP特点:基于字节流segment段

面向连接

可靠传输

缓存传输

全双工

流量控制

需要源IP  端口  目的 ip  端口

紧急数据一般称为带外数据

MSS最长报文大小 max segment size

默认536 不超过MTU  超过就会分片

TCP如何保证可靠性

不可靠性: 

差错    通过校验和  如果变化将丢弃不确认 从而导致超时重传

失序    seq序号保证不失序

重复    seq

丢包   超时重传  +确认机制(规定时间未收到确认消息) 但是不是立即发送

TCP还可以提供流量控制  TCP连接的每一方都有一定大小的缓冲空间

 

滑动串口协议(流量控制)

可以用于 链路层  传输层

链路层以帧为单位确认

传输层TCP以字节为单位确认

TCP头部有一个16位整数的窗口大小序号

发送窗口大小必须小于接受窗口大小  就是这个头部决定的

MSS不要超过MTU-20-20

 

 

UDP效率更高 因为头部比TCP简单

 

 

 

 

FDDI  光纤分布式数据接口

ATM 异步传输方式

 

 

 

 

 

解决网络中的环路问题,有生成树、源路由两种方式。

 

 

 

 

 

最后

以上就是高大菠萝为你收集整理的TCP/IP面试必备的全部内容,希望文章能够帮你解决TCP/IP面试必备所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部