tcp/ip通信传输流

利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信,发送端从应用层往下走,接收端则往应用层方向走。
我们用HTTP进行举例
客户端在应用层发出想要看到某个web页面的http请求。HTTP协议
为传输方便,传输层利用TCP协议将从应用层处收集到的数据进行分割,并在各个报文上打上标记序号,及端口号转发给网络层。
在网络层IP协议增加作为目的地址的MAC地址转发给链路层,这样一来,发往网络的通信请求就准备齐全了。
接收端的服务器在链路层接收到数据,按层往上层发送,一直到应用层。当传输到应用层,才算真正接收到由客户端发送过来的HTTP请求。
发送端在层与层之间传输数据时,每经过一层必定会被打上一个该层所属的首部信息(HTTP数据,TCP首部,IP首部,以太网首部),这种把数据信息包装起来的做法称为封装。
负责传输的IP协议
IP协议的作用是把各种数据包传递给对方,完成这些,其中两个重要条件是IP地址和MAC地址。IP地址指明了节点被分配的地址,MAC地址则是指网卡所属的固定地址。IP地址和MAC地址进行配对,IP地址可变换,MAC地址基本不会改变。
使用ARP协议凭借MAC地址进行通信
IP间的通信依赖MAC地址,一般来说通信双方在同一网络中的情况很少,因此需要通过网络设备进行中转。利用ARP协议将IP地址转化为MAC地址。(地址解析协议)
没有人能全面了解网络中的传输状况
在到达通信目标之前,相应的设备只能获悉很粗略的传输路线。这种机制称为路由选择。
确保可靠性的TCP协议
按层次分,TCP位于传输层,提供可靠的字节流服务。
所谓字节流服务,为了方便传输将大块数据分割成以报文段为单位的数据包进行管理,可靠的传输服务是指,能够把数据准确可靠的传输给对方。
确保数据能到达目标
为确保准确无误的能把数据送达到目标处,TCP协议采用了三次握手策略,用TCP协议把数据包送出后,TCP协议采用三次握手的方法。确保对方到达,握手中采用了TCP的标志(flag)-SYN(synchronized)和ACK。

负责域名解析的DNS服务
将IP地址转化为域名。
URI和URL
URI 统一资源标识符。URI是某个协议方案表示的资源的定位标识符。URI用字符串标识某一互联网资源,URL表示资源的地点。
URI存在绝对URL和相对URL。
tcp/ip通信传输流的更多相关文章
- TCP/IP通信网络基础
TCP/IP是互联网相关的各类协议族的总称. TCP/IP的分层管理 分层的优点:如果只有一个协议在互联网上统筹,某个地方修改就要把所有的部分整体换掉,采用分层则只需要改变相应的层.把各个接口部分规划 ...
- 使用Boost asio实现同步的TCP/IP通信
可以先了解一下Boost asio基本概念,以下是Boost asio实现的同步TCP/IP通信: 服务器程序部分,如果想保留套接字之后继续通信,可以动态申请socket_type,保存指针,因为so ...
- 使用Boost asio实现异步的TCP/IP通信
可以先了解一下Boost asio基本概念,以下是Boost asio实现的异步TCP/IP通信: 服务器: #include "stdafx.h" #include <io ...
- TCP/IP 通信
TCP/IP 通信又叫socket 通信,是基于TCP/IP协调面向连接的一个数据传输技术.是属于OSI国际标准的传输层,三次握手 提供数据,有序,安全,端到端的传输和接收.它有三个主要协议:传输控制 ...
- tcp/ip通信第5期之服务器端程序
/* 此程序是tcp/ip通信服务器端程序,测试运行在redhat5上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> # ...
- tcp/ip通信第5期之客户机端程序
/*此程序是tcp/ip通信的客户机端程序, 测试运行在redhat6系统上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> ...
- 第4章 TCP/IP通信案例:访问Internet上的Web服务器
第4章 TCP/IP通信案例:访问Internet上的Web服务器 4.2 部署代理服务器 书中为了演示访问Internet上的Web服务器的全过程,使用了squid代理服务器程序模拟了一个代理服务器 ...
- TCP/IP通信过程(以发送电子邮件为例)(转)
1.应用程序处理 (1)A用户启动邮件应用程序,填写收件人邮箱和发送内容,点击“发送”,开始TCP/IP通信: (2)应用程序对发送的内容进行编码处理,这一过程相当于OSI的表示层功能: (3)由A用 ...
- linux高性能服务器编程 (四) --TCP/IP通信案例
第四章 TCP/IP通信案例 HTTP代理服务器的大致工作原理 在HTTP通信链上,客户端和服务器之间通常存在某些中转代理服务器.它们提供对目标资源的中转访问.一个HTTP请求可能被多个 ...
随机推荐
- Tomcat Server处理一个http请求过程
假设来自客户端的请求为: http://localhost:8080/lizhx/lizhx_index.jsp 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Conne ...
- EntityFramework6.X之DataAnnotations
DataAnnotations 在web开发中不仅在客户端需要执行验证逻辑,会对会对用户向表单中输入的数据给出一个即时反馈:且在服务器端也需验证逻辑,因为来自网络的信息都是不能信任的.在MVC中通常是 ...
- javaWeb学习总结(7)-关于session的实现:cookie与url重写
本文讨论的语境是java EE servlet.我们都知道session的实现主要两种方式:cookie与url重写,而cookie是首选(默认)的方式,因为各种现代浏览器都默认开通cookie功能, ...
- React之组件通信
组件通信无外乎,下面这三种父子组件,子父组件,平行组件(也叫兄弟组件)间的数据传输.下面我们来分别说一下: 父子组件: var Demo=React.createClass({ getInitialS ...
- spring MVC 乱码问题
(转) spring的字符集过滤通过用于处理项目中的乱码问题,该过滤器位于org.springframework.web.filter包中,指向类CharacterEncodingFilter,Cha ...
- VR全景智慧城市—你的掌上步行街
"春风十里,不如有你",不知不觉间,身边的人已对VR不再陌生,VR眼镜的热销,VR体验店的火爆,VR游戏的向往等等.可见VR就是为生活而诞生! 2015年被称作VR行业的产业元年, ...
- 简易-五星评分-jQuery纯手写
超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...
- git与github的使用
git和github是两个完全不同的概念,就好比如雷锋与雷峰塔的关系. git是一个版本管理工具,用来更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这个工具, 可以把你原来 ...
- asp net core 跨平台初体验
标: 在 ubuntu 16.04 上部署一个 asp.net core 站点,打开网站后显示一段文字. 安装 net core 运行环境:ubuntu 16.04 LTS 1.添加 apt 源 ...
- eclipse下启动tomcat项目,访问tomcat默认端口显示404错误
解决:打开eclipse的server视图,双击你配置的那个tomcat,打开编辑窗口,查看server locations,看看是否选择了第一个选项(默认是第一个选项),即use workspace ...