在大学时候学过网络通信这一块,奈何已经还给老师,苍天饶过谁,该拾起来看看学学的还是要学,先简单了解了下这方面的知识,后续会继续通过看书来充实这方面的知识。

手机能够联网是手机底层实现了TCP/IP协议,可以使手机通过无线网建立TCP连接,TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在无差别的网络之上。
 
建立起一个TCP连接需要经过“三次握手”
第一次:客户端发送syn包到服务器,等待服务端确认。
第二次:服务端收到syn包,确认客户的syn,同时发送一个自己的syn,即syn+ack包
第三次:客户收到服务器的syn+ack包,向服务器发送确认包ack,此包发送完毕完成三次握手。
 
握手过程中传送的包里不含数据,三次握手完毕才开始正式传输数据,TCP连接一旦建立,在通信双方任何一方主动关闭连接之前,TCP连接将一直保持下去,断开需要四次握手。
 
TCP/IP协议族(OSI七层协议模型和TCP/IP四层模型)
 
从上往下:
应用层:应用层决定了向用户提供应用服务时通信的活动,TCP/IP协议族内预存了各类应用服务,FTP文件传输协议,DNS域名系统协议,HTTP协议也位于该层
 
传输层:提供处于网络连接中的两台计算机之间的数据传输。TCP传输控制协议和UDP用户数据报协议。
 
网络层:用来处理网络上流动的数据包。数据包是网络传输的数据单位。
 
数据链路层:用来处理连接网络的硬件部分,包括操作系统,硬件的设备驱动,网络适配器等等
 
 
Socket介绍:
又称套接字,应用程序通过套接字向网络发出请求或者应答网络请求。
套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,它是网络通信中端点的抽象表示,包含网络通信必须的信息:连接使用的协议,本地主机的IP,本地进程的协议端口,远程主机的IP,远地进程的协议端口。
 
应用层与传输层进行数据通信的时候,TCP可能会遇到同时为多个应用程序提供并发服务的问题。多个TCP连接或者多个应用程序进程可能需要同一个TCP协议端口传输数据,为了区分这些TCP连接或者应用程序,应用层和传输层通过socket接口来区别。
 
建立socket连接至少需要一对套接字,客户端clientSocket,服务端的serverSocket。套接字之间的连接过程分为三步:
1.服务器监听
2.客户端请求
3.连接确认
 
常说的Socket实际上就是对TCP/IP协议的封装,socket本身并不是一个协议,只是一个调用接口

TCP/IP,HTTP,Socket初识的更多相关文章

  1. ios开发网络知识 TCP,IP,HTTP,SOCKET区别和联系

    TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为:        对应 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--     ...

  2. Linux内核 TCP/IP、Socket参数调优

    Linux内核 TCP/IP.Socket参数调优 2014-06-06  Harrison....   阅 9611  转 165 转藏到我的图书馆   微信分享:   Doc1: /proc/sy ...

  3. TCP/IP、SOCKET、HTTP之间的联系与区别

    主要内容: 1.网络的七层协议 2.TCP/IP.SOCKET.HTTP简介 3.TCP连接.HTTP连接.Socket连接的区别 一.网络的七层协议 网络七层由下往上分别为物理层.数据链路层.网络层 ...

  4. 网络协议HTTP、TCP/IP、Socket

    网络协议HTTP.TCP/IP.Socket 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.  其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的 ...

  5. TCP/IP以及Socket聊天室带类库源码分享

    TCP/IP以及Socket聊天室带类库源码分享 最近遇到个设备,需要去和客户的软件做一个网络通信交互,一般的我们的上位机都是作为客户端来和设备通信的,这次要作为服务端来监听客户端,在这个背景下,我查 ...

  6. TCP/IP 和 Socket 的关系

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  7. TCP/IP的Socket编程

    1. TCP/IP.UDP的基本概念 TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,他是一个工业标准的协议集, ...

  8. TCP,IP,HTTP,SOCKET区别和联系

    物理层-- 数据链路层-- 传输层--                       TCP协议 会话层-- 我 们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便 ...

  9. Mysql服务器相互作用的通讯协议包括TCP/IP,Socket,共享内存,命名管道

    MySQL实现了四种通信协议 TCP/IP协议,通常我们通过来连接MySQL,各种主要编程语言都是根据这个协议实现了连接模块 Unix Socket协议,这个通常我们登入MySQL服务器中使用这个协议 ...

随机推荐

  1. codevs贪吃的九头龙

    传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落.有一天,有M 个 ...

  2. redis常用命令与使用分析

    redis-cli的使用 连接服务器 redis-cli -h 127.0.0.1 -p 6392  -a 123456 set操作 语法 sadd key [members.......]      ...

  3. win7 32位安装pyqt

    参考 http://blog.csdn.net/fairyeye/article/details/6607981 http://www.cnblogs.com/toSeek/p/6363036.htm ...

  4. vue doubleclick 鼠标双击事件

    Vue-dblclick事件(此外事件还有mouseover,mouseout,click,mousdown...): v-on:dblclick="函数" v-on:click/ ...

  5. LoadRunner多负载产生器

    Executive Summary : The following explains why it is necessary to have about 6 load generators when ...

  6. 数据库 ""和null的在java 持久化中的区别

    如果查找的时候查找了dealerCarType中a字段,但是数据库中a字段为"",那么持久化结果dealerCarType.getA() 结果为""; 如果查找 ...

  7. nodejs如何使用mongo数据库

    nodejs如何使用mongo数据库 首先,请参考下面两个链接,配置并运行express和mongodb. 1.使用express生成一个空白网站http://cnodejs.org/topic/50 ...

  8. 在Linux中将php-fpm配置成服务的方法

    1.配置php-fpm.conf vi /usr/local/php/etc/php-fpm.conf php-fpm.pid 目录必须指向:/usr/local/php/var/run/php-fp ...

  9. codeforces 557 C

    由于期末.非常久没刷题了,CF一直掉-- 这个题事实上非常简单. .由于做法非常easy想到嘛.. 就是枚举max=x时,最大能保留多少价值.不断更新ans, 结果就是全部价值和减去ans就好 因为最 ...

  10. kubectl技巧之通过jsonpath截取属性

    系列目录 前面一节我们介绍了使用go-template截取属性,go-template功能非常强大,可以定义变量,使用流程控制等,这是jsonpath所不具备的.然而,jsonpth使用的时候更为灵活 ...