aboutsummaryrefslogtreecommitdiff
path: root/content/en/blog/20210320-ouroboros-rina.md
diff options
context:
space:
mode:
authorDimitri Staessens <[email protected]>2021-03-23 02:27:09 +0100
committerDimitri Staessens <[email protected]>2021-03-23 02:27:09 +0100
commit30bd640b4950d6c4b881f73fb2534e8e3a1353b8 (patch)
treef3cc856690e99683f5ca2f9eb11a74381bc5f2cf /content/en/blog/20210320-ouroboros-rina.md
parentc92c69912314e5862efef8f31477e167c30715f2 (diff)
downloadwebsite-30bd640b4950d6c4b881f73fb2534e8e3a1353b8.tar.gz
website-30bd640b4950d6c4b881f73fb2534e8e3a1353b8.zip
content: Some more small fixes in blog
Diffstat (limited to 'content/en/blog/20210320-ouroboros-rina.md')
-rw-r--r--content/en/blog/20210320-ouroboros-rina.md39
1 files changed, 19 insertions, 20 deletions
diff --git a/content/en/blog/20210320-ouroboros-rina.md b/content/en/blog/20210320-ouroboros-rina.md
index 9d51f64..da9e178 100644
--- a/content/en/blog/20210320-ouroboros-rina.md
+++ b/content/en/blog/20210320-ouroboros-rina.md
@@ -574,12 +574,11 @@ that the Apache or Nginx developers would need to do is call accept()
and read/write/select/epoll etc calls, instead of having to handle
sockets and all their options. That's what the bind() and register()
calls in Ouroboros do for Ouroboros applications: you bind some
-program to that name _from the command line_, you register the name in
-the layer (equivalent of creating the socket) _from the command line_
-, and all the (server) program has to do is call _flow\_accept()_ and
-it will receive incoming flows. It is this change in the RINA API
-that inspired us to name our very first public presentation about
-Ouroboros, at FOSDEM 2018,
+program to a name _from the command line_, you register that name in
+the layer _from the command line_ , and all the (server) program has
+to do is call _flow\_accept()_ and it will receive incoming flows. It
+is this change in the RINA API that inspired us to name our very first
+public presentation about Ouroboros, at FOSDEM 2018,
[IPC in 1-2-3](https://archive.fosdem.org/2018/schedule/event/ipc/).
When we tried to propose them to the RINA community, these changes
@@ -623,7 +622,7 @@ like the HTTP methods PUT/GET/DELETE/POST/... there is nothing
_fundamental_ about it. It might as well have just one method,
_[execute](http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html)_.
It's taste, and it definitely wasn't _my_ taste. I found that it only
-proved my long-holding observation that for every engineer there were
+proved my long-holding observation that for every engineer there are
at least three overengineers. I made a bold prediction to Sander: one
day, we would kick CDAP out of the Ouroboros prototype.
@@ -750,17 +749,17 @@ located_? If it was in the _application_, it would be outside of SC6,
which was dealing with networks, if it was in the network, it would be
dealt with _only_ in SC6. It was a turf battle battle between two ISO
groups, and because Application Entities were usually drawn as a set
-of circles, and the boundary between the network application as a
-line, that battle was internally nicknamed -- boys will be boys -- the
-_balls-in, balls-out_ question. If you ever attended one of John's
-presentations, he would take a short pause and then continue: "this
-was the only time that a major insight came from a turf war": _the
-balls were on the line_. The Application Entity needed to be known in
-both the application and the network. Alas! Our implementation was
-clearly showing that this was not the case. The balls were _above_ the
-line, the _network_ (or more precise: the flow allocator) doesn't need
-to know _anything_ about application entities! Then and there, Sander
-had found a mistake in RINA.
+of circles, and the boundary between the network and the application
+as a line, that battle was internally nicknamed -- boys will be boys
+-- the _balls-in, balls-out_ question. If you ever attended one of
+John's presentations, he would take a short pause and then continue:
+"this was the only time that a major insight came from a turf war":
+_the balls were on the line_. The Application Entity needed to be
+known in both the application and the network. Alas! Our
+implementation was clearly showing that this was not the case. The
+balls were _above_ the line, the _network_ (or more precise: the flow
+allocator) doesn't need to know _anything_ about application entities!
+Then and there, we had found a mistake in RINA.
Ouroboros now had a crisp and clear boundary between the flow in a
_DIF_, and any connections using that flow in the layer above. Flow
@@ -805,7 +804,7 @@ fragmentation in IP and only retransmit the bytes in that fragment.
But the code was again speaking otherwise. It was basically telling
us: TCP was independent of IP. But fragmentation should be in TCP, and
IP should specify its maximum packet size. Anything else would result
-in an intolerable mess. So that's how we split the _Flow and
+in an intolerable mess. So that's how we split the _Flow and
Retransmission Control Protocol_ (FRCP) and the _Data Transfer
Protocol_ (DTP) in Ouroboros. Another mistake in RINA.
@@ -827,7 +826,7 @@ part. RINA is not controlling _ALL_ IPC; there is IPC _outside of
RINA_. Another way of seeing it, is like this: If a set of processes
(IPCPs) are needed to provide reliable state synchronization between
two applictions A and B, who is providing reliable state
-synchronization between A and the first IPCP? If it's again an IPCP,
+synchronization between A and the IPCP? If it's again an IPCP,
that's _infinite_ recursion! Now -- granted -- this is a rather
_academic_ issue, because most (all?) computer hardware does provide
this kind of preserving IPC. However, to me, even theoretical issues