기본 콘텐츠로 건너뛰기

네트워크 정리

중요하거나 모르는 내용 위주로 정리합니다.

1. 개요
네트워킹 기술을 경로로 구분하면, 서킷 스위칭과 패킷 스위칭을 나뉜다. 서킷 스위칭으로 경로를 모두 정하여 전용회선으로 사용하는 것이다. 전화가 해당된다.
패킷 스위칭은 우편 배달과 비슷하다. 데이터그램 방식과 가상회선 파빙식이 있는데, 가상회서 방식은 패킷 스위칭기반으로 서킷 스위칭처럼 움직이는 것이다.

2.프로토콜 구조
프로토콜의 구성요소는 Syntax(구문), Semantics(의미), Timing(타이밍)이다. 구문은 format, 의미는 필드의 의미, Timing은 언제 주고받을지, 속도와 관련 있다.
구현 방식에는 Layer와 hierarchy가 있다. layer은 인접한 계층끼리만 통신이 가능하지만, hierarchy는 계층간을 넘나 들 수 있다.

3장. 프로토콜 기능
Encapsulation : 헤더 or 테일을 붙이는것
Flow Control: 가장 쉬운 방법 Stop-and-wait, 개선된 것 sliding window
Error Control : detection과 retransmission

4장. TCP/IP, 그리고 인터넷 기반 어플리케이션
TCP/IP구조와 OSI 구조 비교해서 보기

5장. IP 운용
비연결형이며 datagram방식이다. 오류 제어,혼잡 제어, 흐름제어 기능이 없다.

6장. IP 주소
사설 IP사용의 장점: IP공간 절약, 사설망 보호

7장: 라우터
L3전달 담당

8장 ARP
Address Resolution Protocol : IP(브로드캐스팅)-> MAC(유니캐스팅)
반대로 동작하는 프로토콜 RARP

9장 ICMP
IP의 문제 : 비연결형, 오류 제어 X, 상대방의 정보 수집 기능 X   => 를 보완해주는게 ICMP

10장. UDP
멀티캐스팅과 브로드스캐팅이 가능하다.(TCP는 불가)

11장.TCP
연결
- 각 연결마다 독립적인 상태변수(소켓)을 관리한다.
- 종료는 1. FIN 보내기, 2 받고 FIN+ACK 보내기 3. 받고 ACK로 응답하기
  3에서 바료 종료하는것이 아니라 패킷 손실을 고려해 2msl동안 유지후 닫는다
- 4way 종료는, 한쪽은 수신만 하는 경우에 사용한다. 양쪽에서 FIN보내기, 받고 ACK 보내기를 수행한다.

에러 제어는 체크섬으로 한다. 오류 복구는 재전송 방법을 택한다(RTO가 지나면 보냄)

흐름 제어는 : 슬라이딩 윈도우 이다. 버퍼의 크기 고려

혼잡 제어는 네트워크의 상태를 고려하는 것으로 늘리다가 전송시간이 길어지면 제어한다. 타호와 리오 방식이 있다.

댓글

이 블로그의 인기 게시물

좌표압축

알 고리즘을 풀다 보면 좌표압축이라는 테크닉이 필요합니다. 저는 좌표압축을  "순위가 중요한 알고리즘에서, 입력값의 갯수보다 입력값의 범위가 클 때 사용하는 방법",  이라고 생각하고 있습니다. 1차원의 좌표로 예를 들어보겠습니다. n개의 x값 을 입력 받아, 입력 중 두개의  x1,x2를 선택하여 사이에 존재하는 점의 개수를 구하는 작업이 있다고 가정합시다. x의 범위는 int형의 범위인 -2^31 ~ 2^31-1 이고 중복은 없습니다. n은 5000 이하입니다. 입력은 n : 7, -2^31, -10000, 0 , -2000, 3, 6, 30000 , x1 = -10000, x2 = 30000 대략적으로 보면 그림과 같이 나타나게 됩니다. x1,x2 사이의 값을 구하게 되면 4개의 값이 나오게 됩니다. 이 경우 위의 값들을 아래와 같이 순위를 유지하면서 바꿔주어도 문제를 풀 수가있습니다. 이렇게   바꿔서 풀 수 있는 이유는 값보다 값의 순위가 중요하기 때문 입 니다. 압축좌표가  필요한 예 로, 카카오 코드 페스티벌 5번 캠핑 문제가 될 수 있습니다. 이 경우 좌표  x,y의 범위는 0 ~ 2^31-1  이지만, 입력받는  좌표의 개수는 최대 5000개  입니다. 만약 입력의 좌표를 그대로 반영하여 문제를 푼다고 하면 배열의 크기가 2^31-1 개가 되어야 합니다. 게다가 2차원으로.. 못풉니다. 탐색하다가 시간다 끝날꺼에요. 하지만 입력이 최대의 개수가 최대 5000이라고 했으니 좌표압축을 이용해 입력받은 좌표를 0~5000 으로 매치시키고 풀게되는 것 입니다.