问题思考+概念考点总结

留一个思考题

设计一个中继服务器,转发客户A--->客户B的请求,并缩短TCP三次握手的时长,并且要求要保证安全性和完整性

概念点总结:

使用Socket建立网络连接的步骤

建立Socket连接至少需要一对套接字,其中一个运行与客户端,成为ClientSocket,另一个运行与服务端,成为ServerSocket' '套接字建立连接过程分为三个步骤:服务器监听,客户端请求,连接确认

  • 1、服务器监听:服务器端的套接字并不定位具体的客户端套接字,而是出于等待连接的状态,实时监控网络状态,等待客户端的连接请求
  • 2、客户端请求:指客户端的套接字提出请求,要连接目标服务器端的套接字
  • 3、连接确认:当服务器端套接字的描述发给客户端,一旦客户端确认了次描述,双方就正式建立连接。

而服务器的套接字继续处于监听状态,继续接受其他客户端套接字的连接请求


  • 网络由上往下分为:应用层、表示层、会话层、传输层、网路层、数据链路层、物理层。
  • socket是对TCP/IP协议的封装和应用,TCP/IP是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。
  • 传输数据如果只使用传输层协议,没有应用层,便无法识别数据内容。
  • socket实际上是对TCP/IP协议的封装,Socket本省并不是协议,而是调用一个调用接口API。通过Socket,我们才能使用TCP/IP协议。
  • TCP/IP只是一个协议栈,就像操作系统的运行机制一样。必须要具体实现,同时还要对外提供操作接口。这个就像操作系统提供的标准的编程接口,比如win32编程接口一样。
  • 网络上提供了一个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
  • 实际上,传输层的TCP协议是基于网络层的IP协议的,而应用层的HTTP协议有事基于传输层的TCP协议的,而Scoket本身不算是协议,就像上面所说,它只是提供了一个阵地TCP或者是UDP编程的接口。

原文发布于微信公众号 - 数据库SQL(SQLdba)

原文发表时间:2018-01-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏jeremy的技术点滴

ansible简易入门

3105
来自专栏主机笔记

linux screen安装一键包的必备神器

在linux上安装软件尤其一键包之类的,都需要很长的时间才能装好,而且会把一些重要的信息显示在最后。虽然说等着就可以,但是这段时间内如果断一下网,密码等信息看不...

2107
来自专栏编程微刊

Git安装及密钥的生成并上传本地文件到GitHub上

1324
来自专栏程序员叨叨叨

Android Studio导入第三方库的三种方法

今天在项目中使用一个图片选择器的第三方框架——GalleryFinal,想要导入源码,以便于修改,于是上网查找了一下方法,想到之前用到过其他导入第三方库的方法,...

722
来自专栏禹都一只猫博客

腾讯云CDN加速配置

2007
来自专栏开发之途

用WordPress搭建个人网站(3)

1897
来自专栏nimomeng的自我进阶

简单免费的文档中心——dokuWiki搭建指南

首先去官网下载页面下载最新版本的Dokuwiki,根据自己需要动态打包,不需要安装:

793
来自专栏黑白安全

渗透测试神器Cobalt Strike

Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,...

461
来自专栏逸鹏说道

07.GitHub实战系列~7.Git之VS2013团队开发(如果不想了解git命令直接学这篇即可)

GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ————————————————————...

2635
来自专栏猿天地

Spring Cloud Ribbon 重试机制

前言 在集群环境中,多个节点来提供服务,难免会有某个节点故障 用Nginx做负载均衡的时候,如果你的应用是无状态的,是可以滚动发布的,也就是一台台去重启应用 这...

3266

扫描关注云+社区