当前位置: 首页 > news >正文

初学tcp/ip协议

<?php
//@author sgsheg
//@time 9/29
/*
what's tcp/ip???
+----------------------------------------------------------------------------------------+
维基百科 TCP/IP协议

TCP/IP协议包含一系列关于换联网基础的网络协议.
在目前使用最多的网络协议.最早源于美国国防部的ARPA网项目.
TCP/IP模型也叫DoD模型.Department of Defense Model.
TCP/IP字面上带有两个协议:TCP协议(传输控制协议)和IP协议(网际协议),是目前互联网的基石.

最初的TCP/IP协议是由文顿.瑟夫和罗伯特.卡恩两位开发,慢慢的通过竞争战胜了其他一些网络协议的方案.蓬勃发展时间是1990年代.当时一些重要而可靠的工具的诞生也促进了互联网的蓬勃发展/

目前流行的IPV4已经接近她的上限!
缺点:
1.地址只有32位,ip地址空间有限
2.不支持服务质量,无法管理宽带和优先级

以太网:Ethernet
令牌怀:Token Ring


首先是分层:
1.链路层
也叫做网络接口层,也就是我们计算机上对应的网络接口卡.它们一些来处理与电缆物理接口.
2.网络层
互联网层.处理分组在网络中的活动.例如分组在网络中的活动.
网络协议层包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)/
3.运输层
TCP传输控制协议
UDP用户数据报协议
TCP为两台电脑之间提供可高的数据通信/
4.应用层
+---------------------------------------------------------------------------------------+
每个Telnel服务器的端口号都是23
每个FTP服务器的端号码都是21
+---------------------------------------------------------------------------------+
在linux下面:
grep telnet /etc/services
[root] grep telnet /etc/services
telnet 23/tcp
telnet 23/udp
rtelnet 107/tcp
telnets 992/tcp
telnets 992/udp
skytelnet 1618/tcp
skytelnet 1618/udp
hp-3000-telnet 2564/tcp
t
tll-telnet 3083/tcp
tel-telnet 3083/udp
telnetcpcd 3696/tcp
telnetcpcd 3696/udp
scpi-telnet 5024/tcp
scpi-telnet 5024/udp
ktelnet 6623/tcp
ktelnet 6623/udp

同理在linux下查看ftp的时候会出现
[root@localhost] #grep ftp /etc/services
ftp-data 20/tcp
ftp-data 20/udp
#21 is registered to ftp,but also use by fsp
ftp 21/tcp
ftp 21/udp
tftp 69/tcp
tftp 69/udp
...................

[root@localhost]# grep TFTP /etc/services
subntbcst_tftp 247/tcp
subntbcst_tftp 3713/tcp
tftps 3713/tcp
tftps 3713/udp
+---------------------------------------------------------------------------------+
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理层

或者是

应用层
主机到主机层
Internet层
网络接入层


FTP/TELNET/SMTP/PNS TFTP/SNMP/R-P
小于1024 指明端口
大于1024作为源端口向目标发起一个连接.

TCP三次握手:
1.发送同步请求(seq=100;ctl=SYN),
2.接受SYN,确认我收到了数据,seq=300 ack=101 ctl=syn,ack
3.建立会话,seq=101 ack=301 ctl=ack-->这是时候数据开始建立

+---------------------------------------------------------------------------------------+
TCP
传输控制协议是一种面向连接的/可靠的/基于字节流的运输层(Translayer)通信协议.由IETF的RFC 793说明.
TCP:Transmission Control Protrol

OSI模型:
即开放式通信系统互联参考模型.Open system Interconnection Reference Model
是国际标准化(ISO)提出的一个试图使各种计算机在世界范围内互连wield网络的标准框架,简称OSI.

国际标准化组织(International Orginization for Stanardization,简称ISO),是制造全世界工商业标准的各国国家标准机构代表的国际标准建立机构,总部设于瑞士日内瓦.


OSI模型:
在指定计算机网络标准方面,起着重大作用的两大国际:国际电报与电话资讯委员会(CCITT),与国际标准化组织.虽然他们的工作领域不同,但是随着科技发展,通信与信息处理之间的界限开始模糊,也成了CCITT和ISO共同关心的领域.

OSI将计算机网络体系(architecture)划分为以下几层:
7.应用层---Application Layer
6.表示层---Presentation Layer
5.会话层---Session Layer
4.传输层---Transport Layer
3.网络层---Network Layer
2.数据链路层--Data Link Layer
1.物理层--Physical Layer

OSI/RM是英文Open Systems Interconnection Reference Model的缩写.

7.应用层(Application Layer)
应用层能与应用程式界面沟通,以达到展示给用户的目的.在此常见的协定有:HTTP/HTTPS/FTP/TELNET/SSH/SMTP/POP3

6.表示层Presentation Layer
主条目:表示层
表示层能为不同的用户提供数据和信息的语法转换内码,使系统能解读成正确的数据,同时也提供压缩解压,加密解密.

第五层:
会谈层(Session Layer)
会谈层用于为通讯双方制定通讯方式,并建立,注销会话(双方通信)

第四层:
Transport Layer
传输层控制资料流量,并且进行侦错及错误处理,以确保通讯顺利.而传输端的传输层为封包加上了序号,方便接受端把封包重组为有用的资料或档案

第三层:网络层(Network Layer)
网络层为资料传送的目的的地定址,再选择传送资料的最佳路线.

第二层:资料链接层
目录:资料链接层
首先资料链接层的功能在于管理第一层的位元元素,并且将正确的资料传送到没有传输错误的路线中.建立还有辨认资料开始以及结束的位置同时予以标记.另外,就是处理由资料受损,遗失甚至重复传输错误的问题,使后续的层级不受到影响,所以它é执行资料的侦错/重修或修正,还有决定设备何时进行传输.设备有Bridge桥接器和switch交换器

第一层:实体层Physical Layer
物理层定义了所有电子以及物理设备的规范.其中特别定义了设备和物理媒介之间的关系,这包含了针脚,线缆规范,中继器,网卡,主机适配器以及其他的设备的设计定义.因为物理层传送的是原始的比较数据流,即设计的目的是为了保证当发送的信号为二进制1的时候,对方接收到的也是二进制1而不是二进制0.因而需要哪个设备有几个针脚.


在因特尔协议族(Internet protocol suite)中,TCP层是位于IP层之上的,应用层之下的中间层.不同主机的应用层之间经常需要可靠的,像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换.

应用层向TCP层发送网间传输的,用8位字节表示的数据流,然后TCP包数据流分割成适当长度的报文段(通常该计算机连接的网络的数据链路层的最大传送单元MTU的限制).之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层.TCP为了保证不发生丢包,就给每一个包一个序号.同时,序号也保证了传动到接收端实体的包的按序接受.然后实体对已经成功接受的包发回一个相应的确认(AKC);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包(假设丢失了)将会被重传.TCP用一个校验(checksum)函数为检验数据是否有错误,在发送和接收时需要计算校验和.


TCP连接包括三个状态:连接建立,数据传送和连接终止.

通路的建立:
tcp用三次握手(three-way handshake)过程中建立一个连接.在连接建立过程中,很多参数要被初始化,例如序号以保证按序传输和连接的强壮性.
一个终端可以同时初始化一个他们之间的连接是可能的.但通常是一端打开一个接口socket然后监听另一方的连接,这就是通常所指的被动打开(passive open).服务器端被动打开以后,用户端就能开始建立主动打开(active open).
1.客户端通过向服务器发送一个SYN来建立一个主动打开,作为三路握手的一部分.
2.服务器端应当为一个合法的SYN回送一个SYN/ACK
3.最后,客户端再发送一个ACK.这样就完成了三路握手,并进入了连接建立状态.


数据传输:
在TCP的数据传送状态,很多重要的机制都保证了TCP的可靠性和强壮性.他们包括:使用序号,对收到的tcp报文段进行排序以及检测重复的数据;使用校验和来检测报文段的错误,使用确认和计时器来检测和纠正丢包或延时.

序列号和确认:
在TCP的连接建立状态,两个主机的TCP层间要交换初始序列化(ISN:initial sequence number).这些序号用于标识字节流中的数据,并且还是对应用层的数据字节进行计数的整数.通常在每个TCP报文段中都有一对序号和确认号.TCP报文发送自己的字节编号为序号,而认为接收者的字节编号为确认号.

 

 

转载于:https://www.cnblogs.com/sgsheg/archive/2012/10/08/2715519.html

相关文章:

  • hrbeu 哈工程 Who Is In Front of Me
  • Linux命令行下常用svn命令
  • 一个form中对应多个动作
  • 关于技术
  • C语言中堆内存、栈内存、静态数据存储区的理解
  • 对IoC DI的理解
  • Red5/FMS视频直播带宽计算
  • linux系统命令su和su - 区别验证
  • http异步
  • fcntl
  • 注意!ASP.NET MVC 3 的一个 OutputCache 问题
  • 看到大家对数据库分页有研究,也分享个本人的
  • androidalertDialog无法显示按钮的bug
  • 跟我一起学习ASP.NET 4.5 MVC4.0(四)
  • 顶部菜单栏(固定在顶部)
  • 时间复杂度分析经典问题——最大子序列和
  • Date型的使用
  • gulp 教程
  • HashMap剖析之内部结构
  • Linux快速复制或删除大量小文件
  • nodejs实现webservice问题总结
  • Python socket服务器端、客户端传送信息
  • Python 反序列化安全问题(二)
  • React-Native - 收藏集 - 掘金
  • Selenium实战教程系列(二)---元素定位
  • SQL 难点解决:记录的引用
  • ucore操作系统实验笔记 - 重新理解中断
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 如何进阶一名有竞争力的程序员?
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 我的业余项目总结
  • 原生 js 实现移动端 Touch 滑动反弹
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (4)STL算法之比较
  • (Python) SOAP Web Service (HTTP POST)
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (数据结构)顺序表的定义
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET开发者必备的11款免费工具
  • .NET企业级应用架构设计系列之技术选型
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • [20171101]rman to destination.txt
  • [2023年]-hadoop面试真题(一)
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [EFI]Dell Inspiron 15 5567 电脑 Hackintosh 黑苹果efi引导文件
  • [HDU]2161Primes
  • [HNOI2008]玩具装箱toy
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页