이제부터 스위치가 존재하는 근거리 네트워크 통신은 어떻게 이뤄지는지 알아볼 것이고, ARP 프로토콜이 왜 필요하고 어떻게 동작하는지 알아보겠습니다. 시작하기 앞서 스위치가 왜 필요한지?에 대해서 먼저 생각을 해보겠습니다. 컴퓨터가 통신할 수 있다는 것은 컴퓨터가 연결되어 있다는 의미입니다. 여러대의 컴퓨터를 연결하는 가장 단순한 방법은 무엇일까요? 바로 전부 연결해주면 됩니다. 하지만, 이 접근법은 너무 비용이 크다는 단점이 명확합니다. 연결한 선을 간단한 전선이라고 생각해봅시다. 그러면 100대의 컴퓨터가 서로 통신하고 싶은 상황에서 전선은 N * (N-1) / 2개가 필요합니다. 문제를 개선하기위해 위와같은 접근을 떠올렸습니다. 바로 어떤 허브를 두고, 모든 통신은 허브를 거쳐가도록 만드는 것이에요...
네트워크 계층의 핵심은 '송신 호스트에서 수신 호스트로 패킷을 전달'을 수행한다는 것입니다. 네트워크 계층의 역할이 끝나면, 데이터그램은 일련의 유무선 통신 링크와 스위치들을 거친 뒤에 목적지 호스트에 도달하게 됩니다. 그리고 이제부터 프로토콜 스택상 네트워크 계층에서 '링크 계층'으로 내려옵니다. 링크 계층이 어떻게 동작하는지 이해하기 앞서 몇가지 용어와 링크 계층이 수행하는 역할이 무엇인지 먼저 알아보겠습니다. 링크 계층 프로토콜을 실행하는 장치들을 '노드(node)'라고 부르고 여기에는 호스트, 라우터, 스위치 등이 포함됩니다. 또한 통신 경로상의 노드들을 연결하는 통신 채널을 '링크(link)'라고 부릅니다. 링크 계층의 기본 서비스는 통신 링크를 이용해 데이터그램을 한 노드에서 인접 노드로 이동..
서버를 구축하다보면, 사용자 요청에 대한 로그를 남겨야 하는 작업이 필요합니다. 저에게 주어진 요구사항은 사용자의 IP, 접속한 브라우저, 사용자의 요청을 처리한 후 어떤 결과가 나왔는지에 대한 정보를 로그를 남기는 것입니다. 먼저 구축된 서버의 아키텍처를 아주 간단하게 나타내면 아래의 그림과 같습니다. 가장 먼저 기존의 코드를 건드리지 않고, 요구사항을 만족할 수 있는 방법이 없는지 고민했고 Nginx의 Access Log를 이용하는 방법을 생각해봤습니다. 172.18.0.1 - - [28/Sep/2022:07:04:30 +0000] "OPTIONS /api/v1/channels HTTP/1.1" 200 Chrome/ Nginx의 Access Log는 별도의 설정 없이 위와같은 로그를 Default로 ..
- Total
- Today
- Yesterday
- OS
- soft delete
- Operating System
- paging
- ARP
- go
- mmu
- 공지
- GORM
- algorithm
- spring
- fiber
- effective
- Effective Java
- java
- network
- Database
- cs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |