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

手机能够联网是手机底层实现了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. 两种const函数

    有两种const函数,声明如下:1.const T func();2.T func() const;第一种表示返回的是const的类型,也即返回的值不能作为左值,楼主懂的.第二种表示该成员函数不能修改 ...

  2. ubuntu下某些文件目录

    1.#include <stdio.h> 2.#include <stdlib.h> stdio.h和stdlib.h的路径:/usr/include

  3. 缓存区溢出检测工具BED

    缓存区溢出检测工具BED   缓存区溢出(Buffer Overflow)是一类常见的漏洞,广泛存在于各种操作系统和软件中.利用缓存区溢出漏洞进行攻击,会导致程序运行失败.系统崩溃.渗透测试人员利用这 ...

  4. jenkins配置Maven的私有仓库Nexus

    1.什么是nexus? Neux:MAVEN的私有仓库; 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库 ...

  5. awk理论详解、实战

    答疑解惑: 为什么用awk取IP的时候用$4? ifconfig eth0 | awk -F '[ :]+' 'NR==2{print $4}' IP第二行内容如下: inet addr:10.0.0 ...

  6. Revolving Digits

    题面 [题目描述]: 有一天,Silence对可以旋转的正整数十分感兴趣.在旋转操作中,他可以把后面的数字按照原位置不动地搬到剩下位置的前面.当然,他也可以完全不动这串数字.比如,他可以把123变为1 ...

  7. javascript 对象初探 (六)--- call()和apply()初探

    在javascript中,每个函数都具有call()和apply()两个方法,您可以用她们来触发函数,并指定相关的调用参数. 此外,这两个方法还有另一个功能,就是她可以让一个对象去‘借用‘另一个对象的 ...

  8. linux内核I2C子系统学习(三)

    写设备驱动: 四部曲: 构建i2c_driver 注册i2c_driver 构建i2c_client ( 第一种方法:注册字符设备驱动.第二种方法:通过板文件的i2c_board_info填充,然后注 ...

  9. String空格删除和java删除字符串最后一个字符的几种方法

    1. String.trim()trim()是去掉首尾空格2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间复制代码 代码如下:Str ...

  10. 转帖:HttpStatusCode状态说明C#版

    Continue 等效于 HTTP 状态 100.Continue 指示客户端可能继续其请求. SwitchingProtocols 等效于 HTTP 状态 101.SwitchingProtocol ...