tcp/ip协议族体系结构及主要协议
首页->学习资料->计算机网络->tcp/ip协议 关键词: 发布时间:2018-06-17 06:08:18 浏览次数:1701

image.png

数据链路层:

实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传办理;

有两个常用的协议:

ARP:(地址解析协议)

RARP:(逆地址解析协议)

他们实现了ip地址和MAC地址之间的相互转换;

因为其上层,网络层是通过ip地址来寻址一台机器的;


网络层:

实现数据包的选路和转发,网络层的最核心协议是ip协议,ip协议 根据数据我的目的ip地址来决定如何抽递它;如果数据包不能直接发送给目标主机,那么ip协议就为它寻找另一个合适的路由器,多次重复这个过程,直到数据包最终到达目标主机,或者由于发送失败而被丢弃;

网络层还有一个生要的协议icmp:因特网控制报文协议,宁是ip协议 的重要补充,主要用于检测网络连接;

它会在发送的报文内容前加一个报文头,标明报文类型及校验字段等;


传输层:

为两台主机上的应用程序提供端到端的通信。

传输层有三个主要协议:

TCP(传输控制协议):为应用层提供可靠的,面向连接的和基于流(stream)的服务。通过超时重传,数据确认等来确保数据包被正确地发送到目的端 ,因此它是可靠的;双方必须先建立tcp连接,并在内核中为该连接维持一些必要的数据结构,如连接状态,读写缓冲区,定时器等。当通信结束,双方必须关闭连接来释放资源;

UDP(用户数据报协议):与tcp协议完全相反,它提供不可靠,无连接和基于数据报的服务;无法保证数据正确地传送到目的端;如果中途丢失,或者目的端通过数据校验发现数据错误而将其丢弃,则udp协议只是简单地通知应用程序发送失败,因此,使用udp协议的应用程序通常要自己处理数据确认,超时重传等逻辑。 

udp协议是无连接的,双方不保持一个长久的的联系,因此就用程序每次发送数据都要明确指定接收端的地址(ip等)


SCTP(流控制传输协议)为了在网上传输电话信号而设计的。


应用层:负责处理应用程序的逻辑,如:文件传输,名称查询等,应用层协议很多,如:

ping(非协议,是应用程序),利用icmp报文检测网络连接;

telnet:远程登录协议

ospf:开放最短中径优先协议,用于路由器间的通信,以告知对方各自的路由信息;

DNS:域名服务协议,提供机器域名到ip地址的转换;

可以通过查看/etc/services文件查看所有知名的应用层协议;


TCP/UDP的优缺点:

TCP的优点:

可靠,稳定
TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。123

TCP的缺点:

慢,效率低,占用系统资源高,易被攻击 
TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 
而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

UDP的优点:

快,比TCP稍安全 
UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……

UDP的缺点:

不可靠,不稳定 
因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

TCP/UDP应用场景:

基于上面的优缺点,那么:

什么时候应该使用TCP:

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 
在日常生活中,常见使用TCP协议的应用如下:

浏览器,用的HTTP
FlashFXP,用的FTP
Outlook,用的POP、SMTP
Putty,用的Telnet、SSH
QQ文件传输

那么什么时候应该使用UDP:

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 
比如,日常生活中,常见使用UDP协议的应用如下:

QQ语音
QQ视频
TFTP

扩展阅读:

https://blog.csdn.net/u013777351/article/details/49226101

赞:(0)
踩:(0)
相关文章
封装与分用
ARP协议工作原理
DNS工作原理
socket和tcp/ip的关系
ip协议
tcp超时重传
热门文章
win7中将文件拷贝到虚拟机linux下
phpexcel设置行高及列宽,背景颜色,
rabbitmq无法启动
intellij idea不显示git push按钮
php7中使用mongodb的aggregate进行
centos7.4 64位下swoole安装及配置
laravel页面静态化的方法
navicate连接mycat报1184错误
单点登录sso原理及php实现方式及de
devops-jenkins容器为pending状态
好评文章
phpexcel设置行高及列宽,背景颜色,
php7中使用mongodb的aggregate进行
intellij idea打开文件所在文件夹
windows下使用MongoDB Compass Com
win7中将文件拷贝到虚拟机linux下
laravel 中悲观锁 & 乐观锁的使用
单点登录sso原理及php实现方式及de
navicate连接mycat报1184错误
rabbitmq无法启动
laravel整合dingo/api方法步骤:jwt
标签
rabbitmq mysql备份 elasticsearch golang swoole
我的项目
【github】www.github.com/hurong241
【码云】gitee.com/hu_rong/projects
【docker hub】hub.docker.com/repositories/hurong241
【packagist】packagist.org/users/hurong241/packages
站点信息
建站时间:2011年
文章数:607篇
浏览数:917440
粤ICP备18028092号-1  微信:hurong241