본문 바로가기

네트워크7

(9) Go-Back-N과 Selective Repeat stop-and-wait 프로토콜의 효율성이 떨어지는 문제를 해결하기 위해 파이프라이닝을 사용하였다. 파이프라이닝 시 오류 회복을 위한 방법으로 Go-Back-N 프로토콜과 Selective Repeat 프로토콜이 있다. 이 두 프로토콜은 순서 번호(sequence number)가 점점 커지도록 설계되어있다. Go-Back-N(GBN, N부터 반복) 송신자는 ACK를 기다리지 않고 여러 패킷을 전송할 수 있다. 단, ACK를 받지 않은 패킷의 최대 허용 수는 N을 넘으면 안된다. 즉, N은 한 번에 보낼 수 있는 패킷의 최대 개수이다. 패킷에 대한 순서번호는 크기가 N인 윈도로 구현된다. 따라서 N을 윈도 크기라고 부른다. 송신측 GBN의 특징으로는 cumulative ACK(누적 확인 응답)을 사용한다.. 2024. 4. 15.
(8) Reliable Data Transfer Protocol(rdt) rdt 1.0 하위 채널이 완전히 신뢰적인 경우이다. 송신측: 상위 계층으로부터 데이터를 받아들이면, 패킷을 생성하고 채널로 송신한다. 수신 측: 하위 계층으로부터 패킷을 수신하면, 패킷으로부터 데이터를 추출하여 상위 계층으로 전달한다. rdt 2.0 하위 채널에서 비트 오류가 발생하는 모델이다. 수신측에서 잘 받았는지 확인하기 위해 '잘 받았다'라는 확인 응답인 ACK와 '다시 보내달라'는 부정 응답 NAK을 이용한다. 송신자는 NAK 응답을 받으면 패킷을 재전송한다. 송신측 상위 계층으로부터 데이터를 받아들이면, 패킷과 함께 체크섬을 생성하고 채널로 송신한다. 그리고 수신측의 ACK나 NAK 응답을 기다린다. 만약 ACK 응답을 받았다면 상위로부터 호출을 기다리는 초기 상태로 돌아간다. NAK 응답을.. 2024. 4. 12.
(6) DNS 인터넷 호스트의 식별 -호스트 이름(hostname): https://www.google.co.kr/ 등과 같이 사람들에게 사용된다. -IP 주소: 32비트 계층 구조를 가진다. 127.0.0.1과 같이 각 바이트를 0~255의 십진수로 표현하고, 각 바이트를 점으로 구분한다. DNS(Domain Name System) DNS는 호스트 이름을 IP 주소로 변환하거나 그 반대의 역할을 해주는 분산 데이터베이스이다. DNS 서버들의 계층구조로 이루어져 있으며, 호스트가 분산 데이터베이스로 질의가 가능하도록 하는 애플리케이션 계층 프로토콜이다. 호스트 에일리어싱(host aliasing): 호스트는 호스트 별명을 가질 수 있는데, 복잡한 호스트 이름을 기억하기 쉽도록 한다. 원래의 호스트 이름은 정식 호스트 .. 2024. 4. 2.
(5) E-mail 이메일의 3가지 주요 요소 user agent mail server SMTP: 이메일을 보내는데 필요한 애플리케이션 계층 프로토콜. SMTP 신뢰적인 전송을 위해 TCP를 사용하며, 사용하는 포트 번호는 25이다. 메일을 보내는 서버에서 받는 서버로 직접 연결한다. 이메일의 전송은 다음과 같은 과정을 거친다. 1. 송신자가 user agent를 이용해 수신자에게 보낼 메시지를 입력한다. 2. 송신자의 user agent는 송신자의 메일 서버로 메시지를 보내며, 이 메시지는 메시지 큐에 들어간다. 3. 송신자의 메일 서버의 SMTP 클라이언트가 받는 서버의 25번 포트로 연결을 시도한다. 4. 성공적으로 연결되면 클라이언트와 서버가 애플리케이션 계층 핸드셰이킹을 시도한다. 이 과정에서 클라이언트는 송신자의.. 2024. 3. 31.
(4) HTTP 메시지 포맷, 쿠키와 웹 캐시, HTTP/2 HTTP 메시지에는 크게 요청 메시지와 응답 메시지가 있다. 요청 메시지 (request message) 방식 URL HTTP 버전 CR LF 헤더 필드 이름: 값 CR LF 헤더 필드 이름: 값 CR LF ... CR LF 개체 몸체(entity body) 요청 메시지의 첫번째 줄을 요청 라인(request line), 그 뒤의 헤더 필드의 값을 알리는 줄들은 헤더 라인(Header Line)이라 부른다. 요청 라인의 첫번째에 적혀 있는 방식은 GET, POST, HEAD, PUT, DELETE 등의 method를 나타내며, HTTP에서는 주로 GET 방식을 주로 사용한다. 개체 몸체의 경우 POST 방식에서 사용되며, GET 방식에서는 비워져 있다. POST 방식: 유저가 입력한 값들이 개체 몸체에 .. 2024. 3. 5.
(3) TCP와 UDP, HTTP TCP(Transmission Control Protocol) -connection-oriented(연결지향형) : 메시지를 전송하기 전에 TCP는 클라이언트와 서버가 서로 전송 제어 정보를 교환하게 한다. (3-way handshaking) -높은 신뢰성: 올바른 전송 순서를 보장한다. -flow control(흐름 제어): 송신자가 수신자의 처리 속도보다 더 빨리 데이터를 보내지 않도록 조절한다. -congestion control(혼잡 제어): 네트워크가 혼잡 상태에 이르면 프로세스의 속도를 낮춘다. UDP(User Datagram Protocol) -비연결형 서비스. 두 프로세스가 통신을 하기 전 handshaking을 하지 않는다. 따라서 TCP보다 속도가 빠르며, 실시간으로 전송되는 서비스에 .. 2024. 2. 21.
(1) 네트워크 용어 및 패킷 -프로토콜: 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계. 둘 이상의 통신 개체 간에 교환되는 메시지 포맷, 순서뿐만 아니라 수신과 이벤트에 따른 행동들을 정의한다. -end system(종단 시스템): 인터넷의 가장자리에 위치한다. PC, 서버, 스마트폰, 태블릿 등이 속한다. 웹 브라우저 프로그램, 웹 서버 프로그램 등 애플리케이션을 수행하므로 호스트라고 부르기도 한다. 호스트는 다시 클라이언트와 서버로 나뉜다. -ISP(Internet Service Provider): 패킷 스위치와 통신 링크로 이루어진 네트워크. 종단 시스템이 인터넷을 사용하기 위해서 필요하다. -forwarding(=switching): 전달받은 패킷을 라우터의 output link로 옮기는 것. .. 2024. 2. 18.