networking?
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Michael Zhang 2023-08-31 23:15:54 -05:00
parent 88fd13a01a
commit 0ef4b692e4
7 changed files with 184 additions and 9 deletions

View file

@ -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
View file

@ -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",

View file

@ -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",

View file

@ -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/

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View 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:

View file

@ -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