我对tcp的初步理解

 以前总听说tcp/ip协议,感觉很叼,总搞不清是个什么东西。

最近在看unix网络编程,似乎有点懂了,不就是源代码么。也就是内核的一部分,至于是谁规定出来的,是谁写出来的,我想应该是n个牛人协议出来的吧。

以前看书的时候总有这样的问题,为什么有了tcp就可以实现网络的数据传输呢?(是不是我有点SB)。现在总算是有点感觉了。

我说个例子看看是不是这样:

目的:实现两台主机之间的简单tcp通信,就a和b吧。

过程:

1 a想和b通信,那么a就要有b的相关相关信息,为什么?你和别人打招呼都不用知道别人的类似名字之类的东西吗!那a为什么能够知道b的相关信息勒?这就是tcp协议该干的事了,别问我tcp协议在哪儿?它就在你的unix/linux内核里。具体tcp要做的事是把bip,port,等一切相关的信息写到一定的结构里,如sockaddr_in。这就是a要做的基本的准备工作。

2 b呢?它需要有什么准备?你去和别人打招呼,别人准备什么?等着呗,天知道你什么时候和人家打招呼啊,只能等着。~~他只需要有打招呼这个心理准备就行了。回到我们的b上,它只需要听着(listen())有没有外面的连接来就行了。至于listen之前的工作,我就不说了,网上很多详细内容的。行了,b也可以了。

Ps 为什么这样就实现了端对端的通信呢?我以前很纳闷,答案是因为这就是tcp规定的(当然前提是这两个系统里都有tcp这部分的源代码),它说行不就行了!想想自己真是太…….

3 好了,现在可以通信了。

再看看tcp它到底干什么了?我的理解是:两个老外,一个会说德语和英语,一个会说韩语和英语。他们两个人交流时各自用自己的语言,肯定是不通的。此时要是有第三个人他说;“你们为什么不用英语交流呢?”那么他们就可以交流了。没错,Tcp充当的就是第三者,两个老外就是ab,也许他们都有各自的很多通信协议,什么tcp,udp啊,只要找到一个a b都有的通信机制,它们自然就通了。

简单的说tcp就是提供了一个模式。

概念不准,但希望例子多少会有点用,看概念的话,书比我清楚,哈哈

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值