본문 바로가기

CS 전공수업/컴퓨터 네트워크

(8)
[네트워크] IP - Internet Protocol - 네트워크 계층은 IP 패킷을 목적지까지 전달하는 역할을 함.- IP 패킷이 출발지부터 목적지까지 가는 데에 있어서 지나는 모든 호스트와 라우터에 IP 프로토콜이 실행됨. - 출발지 호스트는, 전송계층에서 넘어온 데이터 세그먼트를 IP 패킷으로 캡슐화함 - encapsulate- 목적지 호스트는 수신한 IP 패킷의 헤더를 제거하고, 전송 계층으로 데이터 전달함 - decapsulate   * 핵심적인, OSI 모델에서의 데이터 관점에서의 용어 및 특징 복습 (송신단 기준, 수신단은 모든 것을 반대로 생각)계층 이름데이터 단위 명칭크기비고 응용 계층데이터무제한. 큼. 이메일 메시지, 웹 페이지 등.사용자가 애플리케이션을 통해 생성한 데이터.전송 계층데이터 세그먼트 / 데이터그램큼지막했던 데이터를 작은 조..
[네트워크] QUIC 프로토콜 QUIC을 왜 쓰냐?  지난 40여년간 통신 쪽을 꽉 잡고 있었던 TCP도, 한계는 있었다.예를 들어, 연결 설정 지연, HOL 블로킹, 복잡한 프로토콜 스택 등이다.QUIC은 한마디로, TCP의 한계점들을 해결하기 위해 드드등장했다. 위의 한계점들을 아래와 같이 극복한다. 1 연결 설정 지연:TCP는 연결 설정을 위해 3-way handshake를 사용했고, TLS를 쓰면 추가적인 3-way handshake를 해야하기에 2번의 3-way HS가 필요했다. 이에 비해 QUIC은, 연결 설정 시 0 또는 1 RTT 핸드셰이크를 사용함. 심지어 한 번 연결했더라면, 0RTT로 가능함. 그리고, QUIC은 TLS를 자체 프로토콜 내에 통합했기 때문에, 별도의 TLS 핸드셰이크가 필요하지 않기 때문에 더욱 편..
[네트워크] 네트워크 보안 1 네트워크 보안 개요 Network Security Overview네트워크 보안에서 중요한 여러가지 요소들은,Confidentiality 기밀성: 오직 의도된 수신자만 메시지를 볼 수 있도록 함. Encryption - Decryption.Authentication 인증: 수신자는 메시지의 발신자를 확인할 수 있음.Availability 가용성: 서비스 및 데이터가 사용자에게 제공될 수 있도록 함. DDoS 공격에 취약함.Data Integrity 데이터 무결성: 메시지의 변경 사항(전송 中 또는 이후)을 감지할 수 있음.뭔가 그럴듯한 이름을 붙였지만, 사실 당연한 것들이다. 이메일로 예를 들자면, 이메일 받기로 한 사람이 받아야 하고 - 기밀성,받는 사람은 누가 보냈는지 알 수 있어야 하고 - 인증..
[네트워크] TCP Congestion Control 버퍼 vs 슬라이딩 윈도우:앞서 다뤘던 슬라이딩 윈도우는 TCP에서 데이터 흐름을 제어하는 매커니즘인데, 송신자가 한번에 전송할 수 있는 데이터의 양을 제한하고, 수신자가 수신할 수 있는 데이터의 양을 제어함. 송신 윈도우 & 수신 윈도우의 두 개 윈도우로 구성됨.버퍼는 라우터, 스위치, 컴퓨터 등의 네트워크 장치에서 임시로 데이터를 저장하는 메모리 공간. 곧 다룰 라우터 버퍼는, 라우터에 붙어서, 데이터 패킷을 일시저장하고, 전송 지연을 관리하는 버퍼임. Congestion 혼잡이란, 여러 소스가 동시에 너무 많은 데이터를 네트워크게 빠르게 전송할 때 발생.예를 들면 아래와 같은 시나리오들을 포함한다.  * 시나리오 1: 2 송신, 2 수신, 무한 버퍼 라우터, 재전송 없음 위에서 보이듯, 무한 버퍼이..
[네트워크] ARQ: Stop-and-wait, Go-back-N, Selective repeat 전송계층(Transport Layer)에서 세그먼트*를 전송할 때, 조금 더 신뢰성 있는 통신, 즉 Reliable Data Transfer를 위해 다양한 방식의 프로토콜을 사용한다. 물론 TCP를 쓸 때는 TCP가 그 자체로 이미 신뢰성 있는 프로토콜이기 때문에 별도의 프로토콜을 더하지 않아도 되지만, UDP 등의 신뢰성이 떨어지는 녀석들을 활용하기 위해서는 더 높은 신뢰도를 위해 추가적인 프로토콜들을 더해주어야 한다. 이러한 프로토콜들을 Automatic Repeat reQuest, 줄여서 ARQ라고 부른다. ARQ는 전송되는 데이터의 정확성과 순서를 보장하는 역할을 한다. 물론 Noisy channel에서만 ARQ를 쓰고, Noiseless channel에서는 non-ARQ를 쓰는데, 여기선 ARQ..
[네트워크] 전송계층 - TCP와 UDP, 그리고 (De-)Multiplexing OSI 7계층 중 전송계층은, sender와 receiver를 연결하는 통신 서비스를 제공하는 계층. 그 둘 사이의 데이터의 전달을 위한 판을 까는 역할을 함(데이터의 물리적인 전달은 X, 라우팅 등 물리적인 움직임은 그 하위계층인 네트워크부터 시작). 전송계층에서는 판을 까는 방법론에 있어서 몇 가지 "프로토콜"을 활용하는데, 대표적으로 TCP 혹은 UDP를 주로 씀.요새는 HTTP3 등의 프로토콜을 QUIC 프로토콜 기반으로 만드는 등 QUIC 프로토콜도 종종 쓰는 것 같지만, 아직까지 미완성형이기 때문에 아직까지 TCP와 UDP를 실무에서 대체하기는 어려움.   TCP - 데이터를 안정적으로, 순서대로, 에러 없이!좋은 예시를 보았는데, IP가 집 주소라면 TCP는 쿠팡이다 - 그러니까, 목적된 I..
[네트워크] 응용계층 - HTTP & DNS, google.com을 치면 일어나는 일 OSI 7 계층의 가장 상단에 위치하여, 유저와 직접 맞닿는 부분인 응용계층에 대해 좀 더 알아보려고 한다.키워드는 HTTP, DNS, SSH이다. HTTP (HyperText Transfer Protocol)HTTP는, 웹 페이지와 기타 웹 컨텐츠를 전송하기 위한 주요 프로토콜이다. 웹 브라우저(클라이언트)와 웹 서버 간에 문서와 데이터를 교환하는 데 사용된다. HTTP는 요청/응답 프로토콜로, 사용자가 웹 브라우저를 통해 특정 웹 페이지를 요청하면, 서버는 HTTP를 통해 그 페이지를 사용자에게 전송한다. 이름에서도 알 수 있듯이, HTTP도 프로토콜, 즉 규약이다. "클라이언트가 이렇게 보내면 서버는 이렇게 답변한다" 라는 일련의 약속인 셈이다. 이 규약은 시간 별로 변천해왔다.   HTTP/1.0..
[네트워크] OSI 7 계층 (vs. TCP/IP 4 계층) OSI 7 계층 OSI(Open Systems Interconnection) 모델은 ISO(International Standards Organization)에 의해 개발된 네트워킹 통신을 위한 표준 아키텍처. 이 모델은 네트워크 통신을 7개의 계층으로 분할하여 각 계층이 특정한 기능과 책임을 가지도록 설계됨. 계층화는 네트워크 설계를 단순화하고, 다양한 하드웨어 및 소프트웨어의 상호 운용성을 향상시키는 데 도움을 줌. 이해하기 쉽게 단순화 시키면 이렇다. 클라이언트 1과 클라이언트2 (혹은 클라이언트와 서버도 동일한 매커니즘)가 서로 통신을 한다고 치자. 그러면 클라이언트 1이 응용 계층에서 어플리케이션을 사용해서 클라이언트 2에게 데이터를 보내면, 클라이언트 2가 해당 데이터를 받을텐데, 이게 어떻게..