전체 글 269

[네트워크] 링크 계층 (1) 서비스 / EDC / MAP 다중 접속 프로토콜

링크 계층 (Link Layer ) 노드: 네트워크에 소속된 전송 대상이 되는 호스트, 라우터, 서버 등등 링크: 두 인접한 노드 사이를 연결하는 통신 채널 프레임: 링크 계층 패킷 단위, 네트워크 계층에서의 데이터 그램을 캡슐화한 것 혹은 물리 계층으로 부터 수신받은 프레임 - 기본 기능 링크를 통한 한 노드에서 다른 노드로의 데이터 그램을 전송 비트 오류 처리 bit error handling 패킷 충돌 처리 packet collision handling - 링크 계층 서비스 캡슐화: Ethernet 프로토콜과 같은 전송 기술로 헤더를 앞에, 비트 오류 검사를 위한 트레일러를 뒤에 추가하여 데이터 그램을 프레임으로 캡슐화한다. 역캡슐화: MAC 주소를 조사하여 목적지 MAC 주소를 변경하거나 수신받은..

[네트워크] 네트워크 계층 (4) SDN 개념 / OpenFlow

Software Defined Network (SDN) 고전적 라우팅 방식: 라우팅 알고리즘에 따라 결정된 라우팅 테이블 프로그램 가능한 라우터: 중앙형 통제, 원격으로 라우터 간 전송을 제어 1) 일반화된 "flow-based" 포워딩 2) control plane과 data plane의 분리 3) data plane switch를 위한 기능: 라우팅, 접근 제한, 부하 제어 등등 4) 응용 계층에서 제어 기능 구현 가능 OpenFlow (SDN 기반 제어) OpenFlow Controller Switches 제어 메세지를 위한 프로토콜 TCP/TLS 기반 메세지 - OpenFlow Switch 구성요소 flowtable: 포워딩 테이블과 비슷함. 데이터 그램을 어디로 전송할 것이냐 secure cha..

[네트워크] 네트워크 계층 (3) 라우팅 알고리즘 (RIP, OSPF, BGP)

라우팅 출발지에서 목적지까지의 최적 경로를 찾는 것 총 경로 비용 = 중간 단계에서 경유하는 링크(한 노드에서 근접한 노드까지의 연결)의 비용 합 $cost(x_1,x_2,...,x_p) = c(x_1,x_2) + c(x_2,x_3) + ... + c(x_{p-1},x_p)$ 분류 Static vs Dynamic 방식 - Static 경로가 관리자 정책에 의해 고정되거나 수정됨 - Dynamic 실시간으로 최적 경로를 업데이트 Global vs Decentralized - Global 모든 라우터는 완전한 네트워크 토폴리지를 알고 있으며 모든 링크 비용을 알고 있음 ex) Link State Algorithm - Decentralized 라우터는 자신과 근접한 라우터들의 정보만 알고 있음 최적 비용을 점..

[네트워크] 네트워크 계층 (1) 라우터 / IP 프로토콜

네트워크 계층 (Network Layer) 네트워크 간의 통신을 가능하게 하는 역할. 전송 계층에서 부여한 포트 번호는 응용 프로그램을 구분하여 목적 프로그램에 전송하기 위해 사용되고 네트워크 계층에서 부여하는 IP 주소는 네트워크를 구분하고 목적지 네트워크에 전송하기 위해 사용된다. - 용어 IP 주소: 네트워크를 식별할 수 있는 주소 라우터: 네트워크 간의 데이터를 전송하는 장비, 스위치와 달리 고유 IP 주소가 있음. 라우팅: 출발지 IP 주소에서 목적지 IP 주소까지의 최적 경로를 결정하는 것, 라우팅 알고리즘에 따라 포워딩 테이블을 구성. 포워딩: 라우터의 입력 버퍼에서 출력 버퍼까지 패킷을 옮기는 것. 라우터 네트워크 계층 기능을 지원하는 장치 - 소프트웨어 부분 라우팅 알고리즘으로 최적 경로..

[네트워크] 전송 계층 (2) TCP 프로토콜

TCP (Transmission Control Protocol) - 전송계층에서 신뢰성있는 통신을 위한 프로토콜 일대일 연결 지향적 (point to point) 일련의 패킷을 연속적으로 전송하는 파이프라인 전송 양방향 데이터 전송 (full duplex) - TCP 헤더와 세그먼트 Sequence Number(SEQ): 세그먼트 data의 일련번호 Acknowlege Number(ACK): 다음 기대되는 세그먼트의 일련번호 연결 수립, 오류/흐름 제어를 위한 정보가 담겨있다. 다중 Pipelining 전송을 위해 window size가 존재한다. 연결 수립을 위한 비트 (SYN)와 연결 종료를 위한 비트 (FIN) 그리고 현재 패킷이 acknowledge number를 담고 있다는 뜻의 비트(ACK)가..

[네트워크] 전송 계층 (1) UDP 프로토콜 / 신뢰성있는 전송

전송 계층 (Transport Layer) 응용 어플리케이션을 특정하여 데이터를 전송하기 위한 계층, 포트 번호를 부여 다중화와 역다중화가 일어남 프로토콜: TCP 프로토콜, UDP 프로토콜 ※ 다중화(multiplexing): 다수의 응용에서 동시에 발생된 독립적인 세그먼트들을 하나의 전송로를 통해 전달하는 과정 ※ 역다중화(demultiplexing): 수신된 다양한 세그먼트들을 전송계층에서 분리하여 해당 응용으로 전달하는 과정 - 포트 번호 응용 타입마다 다른 포트번호를 할당, 0~65535번 포트를 사용한다. 0~1024: 알려진 포트, ex) SSH(22) SMTP (25) DNS(53) HTTP(80) POP3(110) HTTPS(443) 1025: 랜덤 포트 - TCP (Transmissio..

[네트워크] 네트워크 계층 (2) IP 주소체계 / NAT / DHCP 프로토콜

IP 주소란 인터넷 네트워크의 주소, 인터넷 서비스 제공자(ISP)에 의해 할당되는 고유 번호. - IPv4 주소 체계 32비트로 이루어진 네트워크 주소, 8비트(1 바이트)씩 끊어서 10진수로 표현한다. ex) 11000000 / 10101000 / 00000001 / 00001010 -> 192.168.1.10 - IP 주소 클래스 IP 주소는 네트워크를 구분하는 네트워크 ID와 네트워크에 속한 컴퓨터를 구분하는 호스트 ID가 있다. 각 클래스마다 32비트중 네트워크 ID 및 호스트 ID에 해당하는 범위가 다르다. C 클래스에 가까울 수록 소규모 네트워크 (일반 가정에서 사용되는 네트워크는 대부분 C 클래스). D 클래스는 멀티캐스트 주소이고 E 클래스는 연구 및 특수용도 주소로 사용된다. A,B,C..

[네트워크] 응용 계층 (1) 서비스 / 클라이언트-서버 vs P2P

응용 계층 서비스 - 네트워크를 사용하는 응용 프로그램 관련 프로토콜 HTTP (Hypertext Transfer Protocol) : 서버와 클라이언트 사이에서 웹문서를 전송하기 위한 규정 FTP (File Transfer Protocol) : 파일 전송을 위한 규정 SMTP (Simple Mail Transfer Protocl) : 이메일 전송을 위한 규정 - 웹과 HTTP 클라이언트는 사이트를 접속할 때 사이트를 구성하는 웹 문서에 해당하는 파일을 요청함 HTTP 프로토콜이 사용됨 전송시간 : TCP 연결 + 파일 전송 = 2*RTT(Round Trip Time) + File 전송시간 - 쿠키 쿠키는 어떤 사이트를 방문한 상태 서버는 사용자 A가 당사 사이트를 방문하였을 때 A에 대한 특정 id(A..

[네트워크] TCP/IP 5계층과 Protocol Stack

TCP/IP 5 계층 - 어플리케이션 계층 (Application Layer) 여러 응용 서비스를 위한 메시지를 구현. 프로토콜: FTP(파일), SMTP(메일), HTTP(텍스트), DNS(도메인 네임) 단위: 메세지 - 전송 계층 (Transport Layer) 목적지 주소의 특정 프로세스에 전달하기 위해 포트번호를 부여함. 프로토콜: TCP/UDP 단위: 세그먼트, 데이터그램 - 네트워크 계층 (Network Layer) 네트워크 주소를 부여함. 라우팅 / 출발지에서 목적지까지의 최적 경로를 설정함. 프로토콜: IP, Routing (OSPF, BGP) 단위: 데이터그램 - 링크 계층 (Link Layer)5계층TCP(/IP 5계층 물리적 주소(MAC)를 부여함. 오류/흐름 제어를 통해 신뢰성 있는..