[네트워크] #14 혼잡 제어 공식, TCP 혼잡 제어
·
전공/네트워크
목차 Congestion Causes & cost of congestion TCP 혼잡 제어 TCP 혼잡 제어 알고리즘 1. Congestion 네트워크에 트래픽(사용량)이 많이 몰리는 상황 혼잡 징후 - lost packets(라우터의 버퍼 오버플로우) - long delays(라우터 버퍼 큐잉 딜레이) flow control vs. congestion control - flow control: 상대방이 데이터를 받을 수 있을 때, 그 범위 내로 데이터를 보내는 것 - congest control: 네트워크 관점에서 데이터가 많아지면 제어하는 것 2. Causes & cost of congestion scenario 1 조건 송신기 2개, 수신기 2개 라우터 1개, 버퍼 크기 무한 링크 출력 성능 R ..
[네트워크] #13 TCP (개념, 기술 전략)
·
전공/네트워크
목차 Overview TCP 세그먼트 구조 TCP 시퀀스 번호, ACK RTT(rount trip time), timeout TCP 신뢰성 있는 데이터 전송 TCP fast retransmit TCP flow control TCP Connection Management Syn Flood Attack 1. Overview 2. TCP segment structure 3. TCP 시퀀스 번호, ACK 데이터 스트림의 첫 번째 바이트는 0 TCP가 데이터 스트림에서 500개의 세그먼트 구성 첫 번째 세그먼트에는 시퀀스 번호 0이 할당 두 번째 세그먼트에는 시퀀스 번호 1000이 할당 MMS, MTU: MSS: Maximum Segment Size MTU: Maximum Transmission Unit 시퀀스 ..
[네트워크] #12 RDT (신뢰성 있는 데이터 전송), RDT 오토마톤 표현, 파이프라인 전송
·
전공/네트워크
목차 신뢰성 있는 데이터 전송 원칙 RDT에 대한 유한 상태 머신(오토마톤) 표현 파이프라인 방식의 고신뢰도 전송 프로토콜 1. 신뢰성 있는 데이터 전송 원칙 a. Provided service 수신자가 메시지를 만들어 세그먼트 단위로 쪼갬 신뢰성 있는 채널로 데이터를 전송 TCP 서비스가 Reliable 한 서비스를 만들어 줌 하지만 현실은 다름, 호스트가 떨어진 원격지에 있기 때문에 전송 계층을 통해 바로 데이터를 전송할 수 없음→ 네트워크 계층을 거처야 함 네트워크 계층은 신뢰할 수 없음 무수히 많은 라우터에 오류가 있을 수도 있고 해커들도 존재 현실적으로 TCP의 신뢰성 있는 서비스는 b와 같은 형태로 이루어짐 b. Service Implementation 애플리케이션은 전송 계층의 TCP 서비스..
[네트워크] #11 UDP (특징, 세그먼트 구조), 전송 계층에 체크섬이 있는 이유
·
전공/네트워크
목차 UDP (User Datagram Protocol) 전송 계층에 체크섬이 있는 이유 1. UDP (User Datagram Protocol) UDP 특징 UDP 세그먼트 - 손실 가능 UDP 용도 - 멀티미디어 앱 스트리밍(손실 허용, 속도 민감) - DNS(Domain Name Service) - SNMP(Simple Network Management Protocol) UDP를 통한 신뢰성 있는 전송 - 응용 계층에 신뢰성 추가 - 애플리케이션별 오류 복구 필요 정체 제어 없음 - 전송되는 데이터, 시기에 대한 애플리케이션 수준의 세밀한 제어 연결 설정 없음(지연 감소) 단순: 발신자, 수신자에 연결 상태 없음 작은 헤더 크기 UDP 세그먼트 구조 데이터 필드: 애플리케이션 데이터 Length 필..
[네트워크] #10 전송 계층 서비스, 다중화&역다중화
·
전공/네트워크
목차 전송 계층 서비스 및 프로토콜 다중화&역다중화 1. 전송 계층 서비스 및 프로토콜 전송 계층은 서로 다른 호스트에서 실행되는 애플리케이션 프로세스 간에 논리적 통신을 제공 엔드 시스템에서 실행되는 전송 프로토콜 send side: 앱 메시지를 세그먼트로 분할하여 네트워크 계층으로 전달 rcv side: 세그먼트를 메시지로 재조립하고 애플리케이션 계층으로 전달 세그먼트: 전송 계층 패킷 Transport vs. Network layer 네트워크 계층: 호스트들 간의 논리적 통신 전송 계층: 프로세스 간 논리적 통신 예시 앤의 집에 있는 12명의 아이들에게 편지를 보내는 상황 호스트 = 하우스 프로세스 = 어린이 앱 메시지 = 봉투 안의 편지 전송 프로토콜 = 형제자매인 앤과 빌 네트워크 계층 프로토콜..
[네트워크]#9 소켓 프로그래밍 (TCP, UDP)
·
전공/네트워크
목차 소켓 프로그래밍 UDP 소켓 프로그래밍 TCP 소켓 프로그래밍 1. 소켓 프로그래밍 소켓: 응용 계층과 end-emd-전송 계층 사이의 문 두 가지 전송 서비스를 위한 두 가지 소켓 유형 TCP: 연결 지향적, 안정적인 바이트 스트림 제공 UDP: 연결이 없음, 한쪽 엔드 시스템에서 다른 엔드 시스템 독립적인 데이터 패킷을 보냄(신뢰할 수 없는 데이터그램) 응용 프로그램 예제 클라이언트는 키보드에서 일련의 문자(데이터)를 읽고 서버로 데이터를 전송 서버는 데이터를 수신하고 문자를 대문자로 변환 서버가 수정된 데이터를 클라이언트로 보냄 클라이언트는 수정된 데이터를 받고 화면에 표시 2. UDP 소켓 프로그래밍 클라이언트와 서버 사이에 연결 없음 데이터를 보내기 전에 handshaking 없음 송신자는..
[네트워크] #8 전자 메일 (SMTP, 메일 전송 프로토콜)
·
전공/네트워크
목차 전자메일 시나리오 메일 전송 프로토콜 1. 전자메일 세 가지 주요 구성 요소 user agents 메일 서버 단순 메일 전송 프로토콜: SMTP user agent ‘메일 판독기’ 작성, 편집, 메일 메시지 읽기 예: 아웃룩, 아이폰 메일 클라이언트 서버에 저장된 발신, 수신 메시지 mail servers 메일박스에 사용자에 대한 수신 메시지가 들어 있음 발신(보낼) 메일 메시지의 메시지 대기열 전자 메일 메시지를 보내기 위한 메일 서버 간 SMTP 프로토콜 SMTP 단순 메일 전송 프로토콜 - TCP를 사용하여 포트 25를 통해 클라이언트에서 서버로 이메일 메시지를 안정적으로 전송 직접 전송: 송신 서버에서 수신 서버로 전송 3상 handshake 메시지 전송 Closure 요구/응답 상호작용(H..
[네트워크] #7 웹과 HTTP, 웹 캐시 (프록시 서버)
·
전공/네트워크
1. Web and HTTP웹 페이지에는 HTML 파일, 이미지, 오디오 파일 등 다양한 객체들이 존재할 수 있음웹 페이지는 HTML 파일 기반으로 이루어져 있고 HTML 파일에서 객체들에 참조함 HTTP (hypertext transfer protocol)웹의 응용 계층 프로토콜은 보통 클라이언트/서버 모델을 사용클라이언트가 HTTP 요청을 보내면 서버가 HTTP 응답을 함클라이언트의 웹 브라우저는 이 내용을 해석해 사용자에게 보여 줌 TCP 사용클라이언트가 서버(포트 80)에 대한 TCP 연결(소켓 생성)을 시작함서버가 클라이언트의 TCP 연결을 수락브라우저(HTTP 클라이언트)와 웹 서버(HTTP 서버) 간에 HTTP 메시지(응용 계층 프로토콜 메시지)를 교환TCP 연결 종료 HTTP는 상태를 저장..
[네트워크] #6 네트워크 응용 원칙 (애플리케이션 아키텍쳐, 응용 계층 프로토콜)
·
전공/네트워크
목차 애플리케이션 아키텍처 응용 계층 프로토콜의 정의 응용 계층이 필요로 하는 전송 계층의 서비스 1. 애플리케이션 아키텍처 클라이언트-서버 서버 - 서버는 항상 작동 - 영구 IP 주소 클라이언트 - 서버와 통신 - 간헐적으로 연결 - 동적 IP 주소 보유 가능 - 서로 직접적인 의사소통을 하지 않음 P2P(Peer-to-Peer) 중앙 서버 없음 임의의 엔드 시스템이 직접 통신 Peer가 다른 Peer에게 서비스를 요청하고, 제공받기도 함 자체 확장성 - 새로운 Peer가 새로운 서비스 기능을 제공하며 수요도 발생함 Peer가 간헐적으로 연결되며 IP 주소가 바뀜 프로세스 커뮤니케이션 프로세스 - 호스트 내에서 실행 중인 프로그램 동일한 호스트 내에서 두 프로세스가 프로세스 간 통신을 사용하여 통신함..
[네트워크] #5 성능 (손실, 지연, 처리량)
·
전공/네트워크
목차 손실 지연 및 발생 원인 패킷 지연의 4가지 요소 패킷 손실 End-to-End Delay Throughput 1. 손실 및 지연 발생 원인 라우터 버퍼의 패킷 대기열 - (일시적으로) 링크에 대한 패킷 도달률이 출력 링크 용량을 초과함 - 대기열의 패킷이 차례를 기다림 2. 패킷 지연의 네 가지 요소 Total nodal delay (\(d_{nodal}\)) \(d_{proc}\): 노드 처리 지연(nodal porcessing delay) 비트 에러 체크 출력 링크 결정 일반적으로 밀리초보다 작음 \(d_{queue}\): 대기열 지연(queuing delay) 전송을 위해 출력 링크에서 대기하는 시간 라우터의 혼잡 수준에 따라 달라짐 \(d_{trans}\): 전송 지연(transmissio..