The 'Goodbye' Problem - Computerphile

preview_player
Показать описание
You say "bye" first! - no, you say "bye" first! - how do you know when to close the connection? Dr Richard G. Clegg of Queen Mary University London talks us through this frustrating network problem.

nb As some eagle-eyed commenters have spotted, Richard meant to say FIN FIN/ACK ACK for the shut down sequence.

This video was filmed and edited by Sean Riley.

Рекомендации по теме
Комментарии
Автор

I love that doing computer science is basically just proving problems are mathematically impossible to solve, then implementing solutions to those problems.

josephrissler
Автор

I was surprised when this video ended.

NoEggu
Автор

The animation from 'user with a laptop' to 'general with a sword' gave me some huge Macromedia Dreamweaver Flash animations throwback.

ardonjr
Автор

2:53 Just one correction: that last packet should be ACK, not FIN. The same side doesn't send another FIN (unless the first one gets lost), but it does need to ACKnowledge the other side's FIN. (Also, a clarification. This is a common way to label handshakes when talking about TCP. Really, SYN, FIN, and ACK are flags. Only the packets labeled as such have the SYN and FIN flags, because they are used only for those purposes. But ACK is in very nearly every packet, because you always need to acknowledge the other side's state, except with the very first packet that opens a connection, which will only have SYN set. But for purposes of talking about handshakes, we only mark it where it relates to SYN and FIN packets.)

fllthdcrb
Автор

I'm proud that as soon as I saw the video title, I was pretty sure it'd be an application of the Two Generals problem.

chrishill
Автор

I can't relate to this, friend of mine used to hang up during saying goodbye. So I always received a partial goodbye and never a chance to say goodbye myself.

hndt
Автор

This starts off sounding simple, then it turns into one of those spiralling recursive things computer science is full of. If every TCP packet is acknowledged, but the ack gets lost, do we need to acknowledge the acknowledgement, but what if that gets lost... and so on. Packets all the way down.

ncot_tech
Автор

When he has (finally) finished talking, my autistic son just hangs up (no goodbye). Bless him.

AnotherPointOfView
Автор

TCP is just like life.

Lots of communications and some that naturally drift into silence and fade away then when you next see that person it all starts again with a “Hello”

smilerbob
Автор

For some reason, I found the video both enjoyable and informative—it made learning about the problem surprisingly fun!

shahinza
Автор

"I say SYN
SYN, SYN
I don't know why you say FIN-ACK
I say SYN"

Qbe_Root
Автор

Just described a denial of service attack. Send 1000s of syn messages and ignore the syn ack measages.

denhal
Автор

I just learned about TCP, and seeing this pop up: perfect!
It's such an interesting problem.

Windeycastle
Автор

I first read about the "two generals" problem in a book where it was presented as a puzzle, first explaining that any message could be lost so the generals can never be sure, then asking the reader for a solution. I was like "obviously there is no solutions.... but the book would never ask it if there wasn't one", so I was thinking about it for a long time before looking up the "solution"... I was maaad at the way the book asked this...

jozsefbodnar
Автор

In practice, if the two generals have a telephone connection and hear each others voices, it works; which I suppose is equivalent to a probabilistic solution, in that an indefinite but large enough sequence of messages has passed between them, gradually increasing their confidence that the other will attack.

CartoType
Автор

Loving the snazzy animations, thank you 👍🏼

michaelharding
Автор

great to see more vids, always look forward to them!

prosodyspeaks
Автор

Can't either/both sides ping each other periodically and if there's no response in a timeout of 60 seconds to consider the connection closed? I think it's called check-alive heartbeat or something.

Amonimus
Автор

The way this is "solved" in the military is through everyone understanding doctrine (how you fight) and any contracts set up ahead of time when comms is good.

major__kong
Автор

Wonderful explanation. I will use this

jmontign