This commit is contained in:
parent
88fd13a01a
commit
0ef4b692e4
7 changed files with 184 additions and 9 deletions
|
@ -4,6 +4,7 @@ import sitemap from "@astrojs/sitemap";
|
||||||
import { astroImageTools } from "astro-imagetools";
|
import { astroImageTools } from "astro-imagetools";
|
||||||
|
|
||||||
import { remarkReadingTime } from "./plugin/remark-reading-time";
|
import { remarkReadingTime } from "./plugin/remark-reading-time";
|
||||||
|
import emoji from "remark-emoji";
|
||||||
import remarkMermaid from "astro-diagram/remark-mermaid";
|
import remarkMermaid from "astro-diagram/remark-mermaid";
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
|
@ -12,6 +13,6 @@ export default defineConfig({
|
||||||
integrations: [mdx(), sitemap(), astroImageTools],
|
integrations: [mdx(), sitemap(), astroImageTools],
|
||||||
markdown: {
|
markdown: {
|
||||||
syntaxHighlight: false,
|
syntaxHighlight: false,
|
||||||
remarkPlugins: [remarkReadingTime, remarkMermaid],
|
remarkPlugins: [remarkReadingTime, remarkMermaid, emoji],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
143
package-lock.json
generated
143
package-lock.json
generated
|
@ -17,7 +17,8 @@
|
||||||
"fork-awesome": "^1.2.0",
|
"fork-awesome": "^1.2.0",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"mdast-util-to-string": "^4.0.0",
|
"mdast-util-to-string": "^4.0.0",
|
||||||
"reading-time": "^1.5.0"
|
"reading-time": "^1.5.0",
|
||||||
|
"remark-emoji": "^4.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/lodash-es": "^4.17.9",
|
"@types/lodash-es": "^4.17.9",
|
||||||
|
@ -1394,6 +1395,17 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@sindresorhus/is": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sindresorhus/is?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@tokenizer/token": {
|
"node_modules/@tokenizer/token": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
|
||||||
|
@ -2125,6 +2137,14 @@
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/char-regex": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/character-entities": {
|
"node_modules/character-entities": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
|
||||||
|
@ -2940,6 +2960,20 @@
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz",
|
||||||
"integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA=="
|
"integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/emojilib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw=="
|
||||||
|
},
|
||||||
|
"node_modules/emoticon": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==",
|
||||||
|
"funding": {
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/wooorm"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/end-of-stream": {
|
"node_modules/end-of-stream": {
|
||||||
"version": "1.4.4",
|
"version": "1.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||||
|
@ -5594,6 +5628,17 @@
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
||||||
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
|
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/node-emoji": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-tcsBm9C6FmPN5Wo7OjFi9lgMyJjvkAeirmjR/ax8Ttfqy4N8PoFic26uqFTIgayHPNI5FH4ltUvfh9kHzwcK9A==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sindresorhus/is": "^3.1.2",
|
||||||
|
"char-regex": "^1.0.2",
|
||||||
|
"emojilib": "^2.4.0",
|
||||||
|
"skin-tone": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/node-fetch": {
|
"node_modules/node-fetch": {
|
||||||
"version": "2.6.7",
|
"version": "2.6.7",
|
||||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||||
|
@ -6507,6 +6552,83 @@
|
||||||
"url": "https://opencollective.com/unified"
|
"url": "https://opencollective.com/unified"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/remark-emoji": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-lQP1lFaYOz6zyJTBfOwYChM1YkgJEVcxSnUBkjo9qujqWwpY36MRFzDjYDk9YNdHqkw5yExB8MnVVHb6wX9QNA==",
|
||||||
|
"dependencies": {
|
||||||
|
"emoticon": "^4.0.1",
|
||||||
|
"mdast-util-find-and-replace": "^3.0.0",
|
||||||
|
"node-emoji": "^2.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/remark-emoji/node_modules/@types/mdast": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/unist": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/remark-emoji/node_modules/@types/unist": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w=="
|
||||||
|
},
|
||||||
|
"node_modules/remark-emoji/node_modules/escape-string-regexp": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/remark-emoji/node_modules/mdast-util-find-and-replace": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-8wLPIKAvGdA5jgkI8AYKfSorV3og3vE6HA+gKeKEZydbi1EtUu2g4XCxIBj3R+AsFqY/uRtoYbH30tiWsFKkBQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/mdast": "^4.0.0",
|
||||||
|
"escape-string-regexp": "^5.0.0",
|
||||||
|
"unist-util-is": "^6.0.0",
|
||||||
|
"unist-util-visit-parents": "^6.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/unified"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/remark-emoji/node_modules/unist-util-is": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/unist": "^3.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/unified"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/remark-emoji/node_modules/unist-util-visit-parents": {
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/unist": "^3.0.0",
|
||||||
|
"unist-util-is": "^6.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/unified"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/remark-frontmatter": {
|
"node_modules/remark-frontmatter": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz",
|
||||||
|
@ -7035,6 +7157,17 @@
|
||||||
"npm": ">=5.6.0"
|
"npm": ">=5.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/skin-tone": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
|
||||||
|
"dependencies": {
|
||||||
|
"unicode-emoji-modifier-base": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/source-map": {
|
"node_modules/source-map": {
|
||||||
"version": "0.7.4",
|
"version": "0.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
||||||
|
@ -7449,6 +7582,14 @@
|
||||||
"url": "https://github.com/sponsors/wooorm"
|
"url": "https://github.com/sponsors/wooorm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/unicode-emoji-modifier-base": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/unified": {
|
"node_modules/unified": {
|
||||||
"version": "10.1.2",
|
"version": "10.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
"fork-awesome": "^1.2.0",
|
"fork-awesome": "^1.2.0",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"mdast-util-to-string": "^4.0.0",
|
"mdast-util-to-string": "^4.0.0",
|
||||||
"reading-time": "^1.5.0"
|
"reading-time": "^1.5.0",
|
||||||
|
"remark-emoji": "^4.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/lodash-es": "^4.17.9",
|
"@types/lodash-es": "^4.17.9",
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
I'm a masters student at the University of Minnesota advised by [Favonia]. I
|
I'm a masters computer science student at the University of Minnesota advised by
|
||||||
previously worked as a Software Developer at [AWS] and [SIFT]. My
|
[Favonia]. I currently work as a software engineer at [Swoop Search], and I've
|
||||||
computing-related interests lie in programming language design and formal
|
worked at [AWS] and [SIFT] in the past. My computing-related interests lie in
|
||||||
verification, systems security, cryptography, and distributed systems.
|
programming language design and formal verification, systems security,
|
||||||
|
cryptography, and distributed systems.
|
||||||
|
|
||||||
|
[Swoop Search]: https://swoopsrch.com/
|
||||||
[aws]: https://aws.amazon.com/
|
[aws]: https://aws.amazon.com/
|
||||||
[sift]: https://www.sift.net/
|
[sift]: https://www.sift.net/
|
||||||
[favonia]: https://favonia.org/
|
[favonia]: https://favonia.org/
|
||||||
|
|
BIN
src/content/posts/2023-09-01-ip-routing/cableHero.png
Normal file
BIN
src/content/posts/2023-09-01-ip-routing/cableHero.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
28
src/content/posts/2023-09-01-ip-routing/index.md
Normal file
28
src/content/posts/2023-09-01-ip-routing/index.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
---
|
||||||
|
title: How IP routing works
|
||||||
|
date: 2023-09-01T03:50:38.386Z
|
||||||
|
tags:
|
||||||
|
- networking
|
||||||
|
draft: true
|
||||||
|
|
||||||
|
heroImage: ./cableHero.png
|
||||||
|
heroAlt: futuristic photograph of a bunch of organized network cables
|
||||||
|
---
|
||||||
|
|
||||||
|
Many of us have probably heard of an IP address, but how does it actually work?
|
||||||
|
I'm going to try to give a high level overview to technical networking concepts.
|
||||||
|
|
||||||
|
Throughout this post I'm going to keep referring back to a train station
|
||||||
|
analogy. We'll start off with a small network and build up into something that
|
||||||
|
scales into the internet we have today.
|
||||||
|
|
||||||
|
## The simplest network
|
||||||
|
|
||||||
|
First, the analogy isn't very far off. Just as there's multiple tracks
|
||||||
|
leading away from a train station, a computer has multiple ports to communicate
|
||||||
|
with other computers, and we typically call these **interfaces**. For example, a
|
||||||
|
laptop may have a Wi-Fi _interface_ and an Ethernet _interface_, while a cell
|
||||||
|
phone may have a cellular _interface_ as well. Server computers could have any
|
||||||
|
number of interfaces.
|
||||||
|
|
||||||
|
You could imagine a simple network between 3 computers like this:
|
|
@ -7,6 +7,8 @@ layout: ../layouts/BaseLayout.astro
|
||||||
|
|
||||||
import Intro from "../content/partials/shortBio.md";
|
import Intro from "../content/partials/shortBio.md";
|
||||||
|
|
||||||
|
Hi there! :wave:
|
||||||
|
|
||||||
<Intro />
|
<Intro />
|
||||||
|
|
||||||
### Research
|
### Research
|
||||||
|
@ -16,8 +18,8 @@ write some blog posts as I learn more. My advisor is [Favonia].
|
||||||
|
|
||||||
### University Involvement
|
### University Involvement
|
||||||
|
|
||||||
During my time at the University of Minnesota, I like to be actively involved in
|
I also love to participate in computing related student groups at the University
|
||||||
computing related student groups.
|
of Minnesota. Here's some of the groups that I'm involved with:
|
||||||
|
|
||||||
- **[GopherHack]**. I'm one of the founding officers at the GopherHack
|
- **[GopherHack]**. I'm one of the founding officers at the GopherHack
|
||||||
organization, hoping to grow a CTF community at the University. I prepare
|
organization, hoping to grow a CTF community at the University. I prepare
|
||||||
|
|
Loading…
Reference in a new issue