부트캠프 마지막 프로젝트로 웹소켓 프로토콜을 이용해 실시간 메세징 기능을 구현했다. 강의를 통해 기능 구현은 완성했지만 프로토콜, 더 나아가 네트워크에 대한 지식이 부족함을 느꼈다. "혼자 공부하는 네트워크"라는 책을 공부하고 정리하면서 네트워크에 대한 이해도를 높이고자 한다.
네트워크 == 여러 장치가 연결되어 정보를 주고 받을 수 있는 통신망
인터넷 == 네트워크 of 네트워크 즉, 네트워크를 연결하는 네트워크
네트워크의 노드와 간선으로 구성된 그래프 모습을 띤다.
네트워크의 기본구조는 호스트, 네트워크 장비, 통신 매체, 메시지로 구성된다.
네트워크를 범위에 따라 분류하기도 한다. LAN과 WAN이 있다.
네트워크를 메세지 교환 방식에 따라 분류하기도 한다. 회선 교환 네트워크, 패킷 교환 네트워크가 있다.
'주어진 시간 동안 전송되는 정보의 양이 일정하다'는 것이 왜 장점일까?
- 예측 가능성 : 전송량이 일정하므로 네트워크의 성능을 예측하기가 쉽다. 이는 실시간 어플리케이션에 중요하다.
- 서비스 품질 보장 : 대역폭이 보장되어 지연이 적다. 음성통화나 비디오 스트리밍 같은 서비스에 적합하다.
- 패킷 교환 네트워크에 비해 구조가 간단하며 전용 회로를 사용하므로 보안성이 뛰어나다.
주소와 송수신지 유형에 따라 전송 방식을 구분한다.
프로토콜 : 통신 과정에서 정보를 올바르게 주고 받기 위한 규칙이나 방법
네트워크 참조 모델 : 통신이 일어나는 구조(과정)을 계층화

- 1. 물리 계층 : 1과 0으로 표현되는 비트 신호를 주고 받는 계층, 가장 근원적인 통신이 이루어지는 계층, 통신 매체에 맞는 신호(전기, 빛, 전파 등)로 운반되도록 비드 데이터의 변환이 이루어지고 통신 매체를 통한 송수신이 이루어지는 계층 - 2. 데이터 링크 계층 : 주변 장치 간의 정보를 올바르게 주고받기 위한 계층, 주고받는 정보에 오류가 없는지 확인하고, MAC 주소라는 주소 체계를 통해 네트워크 송수신지를 특정한다. - 3. 네트워크 계층 : 메시지를 (다른 네트워크에 속한) 수신지까지 전달하는 계층, 네트워크 간 통신이 이루어지는 계층, 인터넷을 가능케하는 계층, IP 주소라는 주소 체계를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고 수신지에 도달하기 위한 최적의 경로를 결정 - 4. 전송 계층 : 패킷이 정상적으로 보내졌는지 확인하는 계층, 포트라는 정보를 통해 실행 중인 응용 프로그램의 식별이 이루어짐 - 5. 세션 계층 : 응용 프로그램 간의 연결 상태인 '세션 session'을 생성하거나 유지하고 끊어주는 역할을 하는 계층 - 6. 표현 계층 : 사람이 이해할 수 있는 언어인 문자를 컴퓨터가 이해할 수 있도록 코드로 변환하는 계층 - 7. 응용 계층 : 사용자와 가장 밀접하게 맞닿아 있는 계층, 사용자에게 다양한 서비스가 제공될 수 있도록 하며 그만큼 타 계층에 비해 응용 계층에 속한 프로토콜이 많다

- 1. 네트워크 엑세스 계층 : OSI 모델의 데이터 링크 계층과 유사하다. - 2. 인터넷 계층 : OSI 모델에서의 네트워크 계층과 유사하다. - 3. 전송 계층 : OSI 모델의 전송 계층과 유사하다. - 4. 응용 계층 : OSI 모델의 세션, 표현, 응용 계층과 유사하다.
통신과정에서 이루어지는 : 캡슐화, 역캡슐화
PDU (Protocol Data Unit) : 각 계층에서 송수신되는 메시지의 단위
OSI 모델, TCP/IP 모델은 사실 아무것도 해주지 않는다.
트래픽과 네트워크 성능 지표