본문 바로가기

CS 전공수업

(12)
[네트워크] 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가 해당 데이터를 받을텐데, 이게 어떻게..