[네트워크] 컴퓨터 네트워킹 하향식 접근

<컴퓨터 네트워킹 하향식 접근 6판 1~3장 내용 요약 정리>

호스트 = 종단 시스템 : 컴퓨터 네트워크에 연결된 모든 장치들

: 통신링크 + 패킷 스위치

통신링크 - 동축케이블 / 광케이블 / 구리선 / 라디오 스펙트럼 등의 다양한 물리매체

한 종단 시스템이 다른 종단 시스템으로 보낼 데이터를 가지고 있을 때, 송신 종단 시스템은 그 데이터를 세그먼트로 나누고 각 세그먼트에 헤더를 붙인다. 이렇게 만들어진 정보패키지를 패킷이라 하며, 패킷은 네트워크를 통해 보내지고 목적지에서 다시 원래 데이터로 조립된다.

패킷 스위치 : 입력 통신 링크의 하나로 도착하는 패킷을 받아서 출력 통신링크의 하나로 그 패킷을 최종 목적지 방향으로 전달한다. 링크 계층 스위치 & 라우터

링크 계층 스위치 : 액세스 네트워크에서 사용됨

라우터 : 네트워크 코어에서 사용

경로 : 패킷이 송수신 종단 시스템에서 수신 종단 시스템에 도달하는 동안 거쳐 온 일련의 통신 링크와 패킷 스위치들을 네트워크상의 경로라고 한다(router or path).

시스코Cisco

ISP(Internet Service Provider) : 패킷 스위치와 통신 링크로 이루어진 네트워크

-> 인터넷은 종단 시스템을 서로 연결하는 것이므로 종단 시스템에 접속을 제공하는 ISP들도 서로 연결되어야 함

TCP(Transmission Control Protocol)

IP(Internet Protocol) : 라우터와 종단 시스템 사이에서 송수신되는 패킷 포맷

TCP/IP : 인터넷 주요 프로토콜

IETF(Internet Engineering Task Force) : 인터넷 표준을 개발

RFC(Request For Comment) : IETF 표준 문서

분산 애플리케이션 : 애플리케이션에 서비스를 제공하는 인프라 구조로서의 인터넷에서 애플리케이션들은 서로 데이터를 교환하는 많은 종단 시스템을 포함하고 있음 ex) VoIP, P2P, 분산 게임, 전자메일, 웹 서핑 등

인터넷 애플리케이션은 종단 시스템에서 수행된다. 패킷 교환기는 종단 시스템 간에 데이터 교환은 쉽게 해주나, 애플리케이션에는 관심을 갖지 않는다.

API(Application Programming Interface) : 인터넷에 접속된 종단 시스템들은 한 종단 시스템에서 수행되는 프로그램이 어떻게 인터넷 인프라 구조에게 다른 종단 시스템에서 수행되는 특정 목적지 프로그램에게 데이터를 전달하도록 요구하는지 명시. 송신 프로그램이 따라야 하는 규칙의 집합이며 인터넷은 이 규칙에 따라 데이터를 목적지 프로그램으로 전달하게 됨

프로토콜 : 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.

종단 시스템 : 인터넷의 가장자리를 차지하고 있음 ex) PC, 모바일 컴퓨터, 서버, 태블릿

= 호스트 : 웹 브라우저 프로그램, 웹 서버 프로그램, 전자메일 클라이언트 프로그램 또는 전자메일 서버 프로그램 같은 애플리케이션을 수행하므로 호스트라고도 부른다. 클라이언트와 서버로 구분된다.

데이터 센터


<접속 네트워크 Access network:>

: 종단 시스템을 그 종단 시스템으로부터 다른 먼 거리의 종단 시스템까지의 경로상에 있는 첫 번째 라우터(=가장자리 라우터)에 연결하는 네트워크 


- 가정접속 : DSL, Cable, FTTH

DSL(Digital Subscriber Line) : 광대역 가정 접속 유형. 지역 전화회사로부터 DSL 인터넷 접속 서비스를 받는다. DSL링크가 3개의 분리된 링크인 것처럼 보이게 하여 하나의 전화회선과 인터넷 연결이 동시에 DSL링크를 공유할 수 있게 한다.

케이블 인터넷 접속 : 광대역 가정 접속 유형. 케이블 TV회사의 기존 케이블 TV 기반 구조를 이용하며 케이블 모뎀이 필요함

FTTH(fiber to the home) : 광대역 접속 중 보다 빠른 속도를 제공하는 미래 기술


- 기업(가정)접속 : Internet, Wi-Fi

LAN : 기업과 대학 캠퍼스에서 일반적으로 종단 시스템을 가장자리 라우터에 연결하기 위해 사용

이더넷 : 여러 유형 LAN 기술 중 가장 널리 사용되는 접속 기술. 이더넷 스위치 혹은 상호 연결된 스위치들의 네트워크는 다시 더 큰 인터넷으로 연결된다.

WIFI(IEEE802.11) : 무선 LAN 환경에서 사용함


 - 광대역 무선 접속 : 3G, LTE

물리 매체 : 꼬임쌍선, 동축케이블, 광섬유, 지상 라디오 채널, 위성 라디오 채널 


<네트워크 코어 Core Network>

- 인터넷의 종단 시스템을 연결하는 패킷 스위치와 링크의 메시

각 패킷은 통신 링크와 패킷 스위치(라우터와 링크 계층 스위치)를 거치게 된다.

저장 후 전달 전송(store and forward transmission) : 스위치가 출력 링크로 패킷의 첫 비트를 전송하기 전에 전체 패킷을 받아야 함을 의미

회선 교환(Circuit switching) : 필요한 자원은 통신 세션 동안에 예약되며 세션의 메시지는 그 자원을 요청하여(on-demand 방식) 사용하고 그 결과 통신 링크에 대한 접속을 위해 기다릴 수도 있다. 연결(회선) 유지 상태 ex) 전화망 - 예약을 요구하는 레스토랑!

-> 네트워크 다중화 : 링크 내 한 회선은 FDM(Frequency-Division Multiplexing, 주파수분할다중화) 혹은 TDM(Time-Division Multiplexing, 시분할 다중화)로 구현됨

패킷교환 > 회선교환 : 1) 패킷교환이 회선 교환보다 전송 용량의 공유에서 더 효율적이며 2) 패킷 교환이 더 간단하고, 효율적이며, 회선교환보다 구현 비용이 적다

프로토콜 스택 : 다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택이라 한다.

DNS (Domain Name System) : 주소 심볼을 32비트 네트워크 주소로 변환하는 기능

메시지 - 애플리케이션에서의 정보 패킷, 세그먼트 - 트랜스포트, 데이터그램 - 네트워크, 프레임 - 링크


인터넷 프로토콜 스택 >

트랜스포트 계층 : 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스 제공. TCPUDP.

네트워크 계층 : 한 호스트에서 다른 호스트로 데이터그램을 라우팅. 출발지와 목적지 간의 일련의 패킷 스위치(라우터)를 통해 데이터그램을 라우트한다. IP, 라우팅 프로토콜

링크 계층 : 경로 상의 한 노드(호스트 혹은 패킷 스위치)에서 다른 노드로 패킷을 이동하기 위해, 네트워크 계층은 링크 계층 서비스에 의존해야 한다. 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것. 이더넷, 와이파이

물리 계층 : 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것. 링크에 의존하고 링크의 실제 전송 매체(꼬임쌍선, 동축케이블 등)에 의존한다.

ISO(International Organization for Standardization)

OSI(Open System Interconnection)

캡슐화 Encapsulation

패킷 : 헤더 필드 + 페이로드 필드(payload filed)

페이로드 필드 : 일반적으로 그 계층 상위로부터의 패킷이다.


<애플리케이션 계층>

: 종단 시스템에서만 애플리케이션 소프트웨어가 존재한다는 기본 설계

: 클라이언트/서버 구조, P2P구조

클라이언트/서버 구조(p78) ex) , 파일 전송, 원격 로그인, 전자메일P2P구조 : 항상 켜져 있는 기반 구조 서버에 최소 의존. 대신에 애플리케이션은 피어(peer)라는 간헐적으로 연결된 호스트 쌍이 서로 직접 통신. 특정서버를 통하지 않고 피어가 통신하므로 Peer to Peer 라고 한다. ex) 파일 공유, IPTV, 인터넷 전화

클라이언트/서버 구조 + P2P 구조 ex) 인스턴스 메시징 애플리케이션

프로세스 : 종단 시스템에서 실행되는 프로그램

클라이언트 : 두 프로세스 간의 통신 세션에서 통신을 초기화(다른 프로세스와의 세션을 시작하려고 접속을 초기화)하는 프로세스

서버 : 세션을 시작하기 위해 접속을 기다리는 프로세스

소켓 : 호스트의 애플리케이션 계층과 트랜스포트 계층 간의 인터페이스. 애플리케이션과 네트워크 사이의 API. 프로세스는 소켓을 통해 네트워크로 메시지를 보내고 받는다. 프로세스- , 소켓- 출입문

IP주소 : 32비트로 구성되며 호스트를 유일하게 식별함

포트번호 : 한 호스트가 많은 네트워크 응용을 수행할 수 있기 때문에 목적지 포트 번호가 이 목적을 위해 사용됨

전 이중 연결(full-deplex) 두 프로세스가 서로에게 동시에 메시지를 보낼 수 있음

TCP(Transmission Control Protocol) : 연결지향형 서비스와 신뢰적인 데이터 전송 서비스를 포함한다.

UDP(User Datagram Protocol) : 최소의 서비스 모델을 가진 간단한 전송 프로토콜


<애플리케이션 계층 프로토콜>

- 다른 종단 시스템에서 실행되는 애플리케이션의 프로세스가 서로 메시지를 보내는 방법정의

- HTTP(80), FTP(21), SMTP(25), DNS(53), P2P

웹과 HTTP

1) on-demand 사용자는 그들이 원할 때 원하는 것을 수신한다.

2) 정보를 사용가능하게 하는 것이 쉽다. 하이퍼링크, 검색엔진 그래픽 등

HTTP(HyperText Transfer Protocol) : 웹의 애플리케이션 계층 프로토콜. TCP를 전송프로토콜로 사용함(TCPHTTP에게 신뢰적인 이터 전송 서비스를 제공함). HTTP 서버는 클라이언트에 대한 정보를 유지하지 않으므로 HTTP를 비상태 프로토콜이라고도 함

서로 다른 종단 시스템에서 수행되는 클라이언트 프로그램과 서버 프로그램은 서로 HTTP 메시지를 교환하여 통신한다. HTTP는 메시지의 구조, 클라이언트와 서버가 메시지를 어떻게 교환하는지에 대해 정의하고 있다.

웹 브라우저 : HTTP의 클라이언트 측을 구현 ex) 인터넷 익스플로러, 파이어폭스

웹 서버 : HTTP의 서버 측을 구현. 항상 켜져있고 고정 IP 주소를 가지며 다른 잠재적인 수백만 브라우저로부터의 요청을 서비스함 ex) 아파치, 마이크로소프트 서버

URL : URL은 객체를 갖고 있는 서버의 호스트네임과 객체의 경로 이름을 갖고 있다.

비지속 연결 : 클라이언트/서버 상호작용이 TCP 상에서 발생할 때 각 요구/응답 쌍이 분리된 TCP연결을 통해 보내짐

지속 연결 : 모든 요구와 해당하는 응답들이 같은 TCP 연결상으로 보내짐

쿠키 : HTTP 서버는 상태를 유지하지 않지만 웹사이트가 사용자를 확인하는 것이 바람직할 때 사용함. 사이트가 사용자를 추적하도록 한다. [RFC 6265]

웹 캐싱 : 웹 캐시 = 프록시 서버. 기점 웹 서버(origin web server)를 대신하여 HTTP 요구를 충족시키는 네트워크 개체이며, 자체의 저장 디스크를 갖고 있어 최근 호출된 객체의 사본을 저장 및 보존하도록 한다.

- 웹 캐시는 클라이언트의 요구에 대한 응답 시간을 줄일 수 있다.

- 웹 캐시는 인터넷으로의 기관 접속 회선상의 웹 트래픽을 실질적으로 줄일 수 있다.

- 웹 캐시를 가진 고밀도 인터넷은 비록 콘텐츠 제공자가 저속도의 접속 회선을 가진 느린 서버에서 자신의 사이트를 운영하더라도 빠른 콘텐츠 분배를 위한 기반구조를 제공한다.

FTP(File Transfer Protocol) :

HTTP와 공통점 : 모두 TCP 상에서 동작함

차이점 : 제어(파일을 보내고 가져오는 명령과 같은 정보) 연결, 데이터(실제 파일을 보냄) 연결을 동시 사용함 => 제어 정보를 아웃밴드(out-of-band)로 보냄 (HTTPSMTPin-band)

- 세션을 통해서 FTP 서버는 사용자에 대한 상태를 유지해야 함 (HTTP는 비상태유지 어플리케이션)

SMTP(Simple Mail Transfer Protocol) : POP3(Post Office Protocol version3)호스트를 식별하는 방법 - 호스트네임, IP주소. 호스트 네임은 위치정보를 거의 제공하지 않고 가변 길이의 알파뉴메릭 문자로 구성되므로 라우터가 처리하는 데 어려움이 있음

DNS(Domain Name System) : 호스트 네임을 IP 주소로 변환해주는 디렉터리 서비스

1) DNS 서버들의 계층 구조로 구현된 분산 데이터 서비스

2) 호스트가 분산 데이터베이스로 질의하도록 허락하는 애플리케이션 계층 프로토콜

단일 네임 서버 : 중앙 집중 방식. 1) 서버의 고장 2) 트래픽 양 3) 먼 거리의 중앙 집중 데이터베이스 4) 유지 관리 => 확장성이 전혀 없음. DNS가 분산되도록 설계 되었음

분산 계층 데이터베이스 : 확장성 문제를 다루기 위해 DNS는 많은 서버를 이용하고 이들을 계층 형태로 구성하며 전 세계에 분산시킨다. (루트 DNS 서버, com - 최상위 레벨 도메인 네임(TLD : Top-Level Domain) DNS 서버, amazon.com - 책임 DNS 서버 => www.amazon.com IP주소를 알려줌)

DNS 질의는 반복적(직접 보냄)이고 재귀적(자신을 대신하여 필요한 매핑을 얻도록 요구함)일 수 있다.

DNS 캐싱 : 지연성능 향상과 네트워크의 DNS 메시지 수를 줄이기 위해 캐싱을 사용함

- 네트워크 구조: 네트워크 시스템 구성요소에 대해 논의하기 위한 구조로서 고정되고 애플리케이션에 특정서비스 집합을 제공하는 것이다. 각 계층 간의 의사소통을 나타낸다.

- 애플리케이션 구조: 애플리케이션 개발자에 의해 설계되고 애플리케이션이 다양한 종단시스템에서 조직되는 방법을 알려주는 것이다. 제공자와 제공받는 측과의 관계를 나타낸다.

트랜스포트 계층 프로토콜 : 서로 다른 호스트의 애플리케이션 프로세스들 간의 논리적 통신을 제공한다. 네트워크 라우터가 아닌 종단 시스템에서 구현된다. 종단 시스템 사이의 IP전달 서비를 종단 시스템에서 동작하는 두 프로세스 간의 전달 서비스로 확장함. 호스트대 호스트 전달을 프로세스 대 프로세스 전달로 확장(다중화,역다중화)

IP 주소 : 호스트들 간에 논리적 통신을 제공하는 Best-effort delivery service 최선형 전달 서비스. 어떠한 보장도 하지 않음(전달 보장X, 순서보장X, 무결성 보장X) -> 비신뢰적인 서비스. 하나의 호스트는 적어도 하나의 IP주소를 가짐

UDP : IP와 같은 비신뢰적 서비스

1) 프로세스-프로세스 데이터 전달(다중화-역다중화) 2) 오류 검출

출발지 포트번호가 다를지라도 목적지 같으면(목적지 IP주소아 목적지 포트번호 같다면) 동일한 프로세스로 향함

혼잡제어 : 과도한 양의 트래픽으로 통신하는 모든 호스트들 사이의 스위치와 링크를 폭주되게 하는 것을 방지하는 것. TCP 연결이 링크 대역폭을 공평하게 공유하여 통과하도록 해준다.

역다중화 : 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업.

다중화 : 소켓으로부터 데이터를 모아 세그먼트를 만든 후 네트워크 계층으로 전달하는 작업.

UDP 사용이유 :

1) 애플리케이션 레벨이 데이터 송신에 대해서 정교한 제어를 할 수 있음

2) 연결 설정이 없다. 따라서 어떤 연결 지연도 없다

3) 연결 상태가 없다. 더 많은 클라이언트를 수용할 수 있음

4) 작은 패킷 헤더 오버헤드 (UDP - 8Byte, TCP - 20Byte)


신뢰성 있는 데이터 전송 : 전달 보장O, 순서대로O

완벽하게 신뢰적인 채널 상에서의 신뢰적인 데이터 전송 : rdt1.0

비트 오류가 있는 채널 상에서의 신뢰적인 데이터 전송 : rdt2.0

-> 오류 검출(checksum), 수신자 피드백(ACK 긍정 확인응답, NAK 부정 확인응답), 재전송

rdt 2.1 :

- ACK 또는 NAK 패킷이 손상될 수 있음 -> ACK, NAK 패킷에 대한 체크섬 추가 필요

- ACK, NAK 패킷 오류로부터 복구 -> 중복패킷 전송 -> 중복 발생가능 : 순서번호 삽입

rdt 2.1 : NAK-free : NAK를 송신하는 것 대신에, 가장 최근에 정확하게 수신된 패킷에 대하여 ACK를 송신함으로써 NAK를 송신한 것과 같은 효과를 얻을 수 있음.

rdt 3.0 : 비트 오류와 손실 있는 채널 상에서의 신뢰적 데이터 전송 : 카운트다운 타이머

파이프라이닝 : 확인 응답을 기다리지 않고 여러 패킷을 전송하도록 허용하는 것

- 파이프라이닝 오류 회복의 두가지 기본적인 방법 : N부터 반복, 선택적 반복

Go-Back-N, GBN : 전송 후 대기 프로토콜에서의 채널 이용률 문제를 피한다.

N 윈도우 크기 : 아직 확인응답 안 된 패킷을 위해 허용할 수 있는 순서 번호의 범위. 순서번호의 범위 상에서 크기. 이 윈도우는 순서번호 공간에서 오른쪽으로 이동된다. = Sliding window protocol

-> 수신자가 유지해야 하는 것은 단지 다음 순서 패킷의 순서번호! 하나의 패킷 오류 때문에 많은 패킷을 재전송함 -> 불필요

SR(Selective Repeat) : 선택적 반복 - 수신자에서 오류가 발생한 패킷을 수신했다고 의심되는 패킷만을 송신자가 다시 전송하므로 불필요한 재전송을 피한다.

TCP - 종단 시스템에서만 동작, 전이중 서비스 제공, 단일 송신자-단일 수신자의 점대점 연결

MSS(Maximum Segment Size) : 최대 세그먼트 크기

TCP 세그먼트 구조 : 출발지/목적지 포트 번호, 순서번호, 확인응답번호, 헤더길이, 미사용, URG(긴급), ACK(확인응답 필드에 있는 값이 유용함), PSH(상위 계층에 즉시 전달해야함), RST, SYN, FIN,(연결 설정과 해제에 사용) 수신윈도우, 인터넷 체크섬, 긴급데이터 포인터, 옵션, 데이터

UDP 세그먼트 구조 : 출발지/목적지 포트번호, 길이, 체크섬, 메시지

RTT(Round-Trip Time) : 타임아웃은 연결의 왕복 시간보다 좀 더 커야 한다.

흐름제어 : 송신자가 수신자의 버퍼를 오버플로우 시키는 것을 방지하기 위해 애플리케이션에게 흐름제어 서비스를 제공. 수신하는 애플리케이션이 읽는 속도와 송신자가 전송하는 속도를 같게 한다.

수신 윈도우 : TCP는 송신자가 수신 윈도우라는 변수를 유지하여 흐름제어를 제공한다. 수신 측에서 가용한 버퍼 공간이 얼마나 되는지 송신자에게 알려주는 데 사용된다.

UDP는 흐름제어를 제공하지 않음

3-way handshake

4-way handshake 

ATM(Asynchronous Transfer Mode) : 비동기 전송 모드 - 네트워크-지원 혼잡제어 예

혼잡윈도우 : TCP 송신자가 네트워크로 트래픽을 전송할 수 있는 비율을 제한하도록 함

혼잡이 존재하는지 감지 - 타임아웃, 3개의 중복된 ACK들의 수신

  과도한 혼잡이 발생하면 경로하에 있는 하나 이상의 라우터 버퍼들이 오버플로우 되고, 그 결과 데이터그램이 버려진다. 버려진 데이터 그램은 송신 측에서 손실 이벤트(타임아웃 또는 3개의 중복된 ACK 수신)을 발생시키고 송신자는 송신자와 수신자 사이의 경로상의 혼잡이 발생했음을 알게 됨

TCP 혼잡제어 알고리즘 : TAHOE, RENO, VEGAS

혼잡제어의 구성요소 : slow start, congestion avoidance, fast recovery

슬로스타트 : cwnd 값을 1MSS에서 시작하여 한 전송 세그먼트가 확인응답을 받으면 지수적으로 cwnd 값을 증가시킨다. 타임아웃에 의한 손실 이벤트(혼잡)가 있을 때까지

ssthresh(slow start threshold) : 혼잡 검출 시 cwnd/2. cwndssthresh와 같을 때 슬로스타트가 종료되고 회피모드로 전환함

TCP TAHOE : 타임아웃으로 표시되거나 3개의 중복 ACK로 표시되는 손실이 발생하면 무조건 혼잡 윈도우를 1MSS로 줄이고 슬로 스타트 단계로 들어감

TCP RENO : 3개의 중복 ACK로 표시되는 손실이 발생하면 cwnd 값의 반으로 빠른회복 상태로 들어감. (타임아웃 시 tahoe와 같음)

AIMD(Additive-increase Multiplicative-decrease) : 처음에 패킷을 하나씩 보내고 이것이 문제없이 도착하면 창 크기(단위 시간 내에 보내는 패킷의 수)를 1씩 증가시켜가면서 전송하는 방법으로 TCP의 혼합 제어의 하나의 방식.


반응형
그리드형

댓글

❤️김세인트가 사랑으로 키웁니다❤️