读书笔记之TCP/UDP

因特网提供的运输服务

因特网,更一般的是tcp/ip网络为应用程序提供两个运输层协议,即UDP和TCP。当一个软件开发者为英特网创建一个新的应用时,首先要做出的决定就是,选择使用TCP协议还是UDP协议。每个协议为调用他们的应用程序提供了不同的服务集合。

TCP服务

TCP服务模型包括面向连接服务和可靠数据传输服务。当某个应用程序调用TCP作为其运输协议时,该程序就能获得来自TCP的两种服务:面向连接的服务、可靠的数据传送服务。

面向连接的服务:在应用层数据报文开始流之前,TCP让客户和服务器互相交换运输层控制信息。。这个所谓的握手过程提醒客户和服务器,让他们为大量的分组的到来做好准备 。在握手阶段后,一个TCP连接就在两个进程的套接字之间建立了。这条连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。当应用程序结束报文发送时,必须拆除该连接。

可靠的数据传送服务:通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。当应用程序的一端将字节流传进套接字时,它能够依靠TCP将相同的字节流交付给接收方的套接字,而没有字节的丢失与冗余。

TCP协议还具有拥赛控制机制,这种服务不一定能能够为通信进程带来直接的好处,但能为英特网带来整体的好处。当发送方和接受方之间的网络出现拥塞时,TCP的拥塞控制机制会抑制发送进程(客户或服务端),TCP拥塞控制机制会试图限制每个TCP连接,使他们达到公平共享网络带宽的目的。

UDP服务

UDP是一种不提供必要服务的轻量级运输协议,他仅提供最小服务。UDP是无连接的。因此在两个进程通信前没有握手过程。UDP协议提供一种不可靠数据传送服务,也就是说,当进程将一个报文发送进UDP套接字时,UDP协议并不保证该报文将到达接收进程。不仅如,到达接受进程的报文也可能时乱序到达的。

UDP没有包括拥塞控制机制,所以UDP的发送端可以用它选定的任何速率向其下层(网络层)注入数据。(然而,值得注意的是实际端到端吞吐量可能小于该速率,这可能是因为中间链路的带宽受限或因为拥塞而造成的)

TCP安全

无论TCP还是UDP都没有提供任何加密机制,这就是说发送进程传进其套接字的数据,与经网络传送到目的的进程数据相同。因此,举例来说如果某发送进程以明文方式(既没有加密)发送了一个口令进入它的套接字,该明文口令将经过发送方与接收方之间的所有链路传送,这就可能任何中间链路被嗅探和发现。因为隐私和其他安全问题对许多应用而言已经成为至关重要的问题,所以英特网已经研制了TCP的加强版,称为安全套接字层。用SSL加强后的TCP不仅能够做传统的TCP所能做的切(看来在计算机领域,传统就意味着落后),而且提供理了关键的进程到进程的安全性服务,包括加密、数据完整性和端点鉴别。我们强调SSL不是与TCP和UDP在相同层次上的第三种英特网运输协议,而是一种对TCP的加强,这种强化是在应用层上实现的。特别是,如果一个应用程序使用SSL的服务,他需要在该应用程序的客户端和服务端包括SSL代码(利用现有的、高度优化的库和类)。SSL有它自己的套接字API,这类似于传统的TCP套接字API。当一个应用使用SSL时,发送进程向SSL套接字传递明文数据:在发送主机中的SSL则加密该数据并将加密的数据传递给TCP套接字。加密的数据经英特网传送到接收进程中的TCP套接字。该接收套接字将加密数据传递给SSL,由其解密。

总结,SSL就是相当于在TCP的模块之上增加的一个负责数据加密于解密的子模块。

 

 

 

----------人们总是在最后紧要的关头显示出不耐烦的情绪。而正是紧要的时候,越是要有十足的耐心与良好的心境。正是修行时--------------------

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘多拉的面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值