Computer Science/네트워크 21

[컴퓨터네트워크] 15. 표준 클라이언트/서버 프로토콜 (2)

클라이언트-서버 프로토콜(2)E-mail (전자메일)이용자 간 메시지 교환이 응용 서비스는 지금까지 본 다른 응용과는 다르다.Client/server 프로그래밍은 좀 더 다른 방식으로 구현해야 함중간에 다른 서버를 필요로 함프로토콜SMTPPOPIMAP(SMTP를 주로 사용하고, POP와 IMAP은 나중에 추가된 프로토콜)MIME(Multipurpose Internet Mail Extensions) : 컨텐츠 형식(인코딩 해서 보낼 형식임)이메일 서비스 구조MTA Server/ClientMessage Transfer Agent메일 보낼 때MAA Server/ClientMessage Access Agent메일 읽을 때UA메일 클라이언트 (요즘은 web)그림 13.12에서 Alice와 Bob이 이메일을 교환한..

[컴퓨터네트워크] 14. 표준 클라이언트/서버 프로토콜 (1)

표준 클라이언트/서버 프로토콜 (1)WWW and HTTPWorld Wide Web (abbreviated WWW or Web)가장 많이 사용되는 인터넷 서비스Hyper-Text Transfer Protocol (HTTP)웹 요청과 응답 메시지를 교환하는 프로토콜(보통 웹 요청은 클라이언트가 서버에게, 응답 메시지는 서버가 클라이언트에게)WWWTim Berners-Lee in 1989 at CERNEuropean Organization for Nuclear Research유럽의 여러 연구자들이 다른 위치에 있는 각자의 연구 자료들을 엑세스하기 위해 고안상용 웹은 1990년 초에 시작HTTPHyperText Transfer Protocol (HTTP)웹 페이지의 요청과 응답 전달 프로토콜HTTP 클라이언트..

[컴퓨터네트워크] 13. 응용계층 소개(2)

응용계층 소개(2)C 반복적 프로그래밍TCP 반복적 프로그래밍 (서버)Scoket()으로 소켓 생성Bind()로 지정된 서버 주소와 포트 설정Listen()으로 클라이언트로부터의 연결을 기다리는 준비를 함Accept()를 호출하면, 연결을 기다림 (block)Recv()로 데이터 수신Send()로 데이터 송신TCP 반복적 프로그래밍 (클라이언트)Socket()으로 소켓 생성Connect()로 지정된 서버로 연결 설정 (block)연결 완료, 혹은 에러 시 block 해제Recv()로 데이터 수신Send()로 데이터 송신 Echo 서버 프로그램 Echo 클라이언트 프로그램 Java 반복적 프로그래밍주소와 포트InetAddress classInet4Address classInet6Address classPo..

[컴퓨터네트워크] 12. 응용계층 소개(1)

응용 계층 소개이용자, 혹은 프로그램(프로세스)에게 서비스 제공프로그램을 위한 다양한 네트워크 서비스 제공원격컴퓨터접근, 파일전송, 이메일전송, ...서비스 제공표준(standard) 응용계층 프로토콜(보통 RFC 표준 문서와 절차를 통해서 그 내용을 구현함)비표준(nonstandard, proprietary) 응용계층 프로토콜(개인적인 그룹, 집단에서 자체적으로 구현한 것)응용계층 패러다임Client-server paradigmTraditional paradigmPeer-to-peer paradigmNew paradigmMixed Paradigm 클라이언트-서버 프로그래밍클라이언트는 통신을 시작하고, 요청을 보내는 프로그램서버는 클라이언트의 요청을 서비스하는 응용 프로그램서비스 유형TCPex) 웹, 이..

[컴퓨터네트워크] 11. 전송계층 프로토콜(2)

전송계층 프로토콜(2)TCPTCP에서의 윈도우TCP는 각 방향의 데이터 전송에 2개의 윈도우 사용send windowreceive window하나의 연결에 전체 4개의 윈도우 존재  수신 window수신측이 송신측에서 data를 받으면 close하고,프로세스가 수신측에 있는 data를 pull하면 open이 발생한다흐름 제어 (Flow control)흐름제어는 소비자가 데이터를 이용할 수 있는 속도로 생산자가 데이터를 보내도록 맞추는 것TCP는 흐름제어와 오류제어를 분리TCP 흐름제어 설명에서 오류는 없는 것으로 가정 Example 10.18다음 페이지 예제 10.18은, 수신 윈도우(rwnd)를 잘못 축소시킨 예.파트 a에서 rwnd=12이고, ackNo=206 파트 b에서 송신측은 206-214 패킷..

[컴퓨터네트워크] 10. 전송계층 프로토콜(1)

전송계층 프로토콜(1)전송계층 프로토콜 소개전송계층 프로토콜 서비스UDP비신뢰적 비연결형간단. 효율적 : 에러처리는 응용계층에서 수행TCP신뢰적인 연결지향SCTPUDP와 TCP의 특징을 결합포트번호(Port Numbers)TP 계층 프로토콜은 프로세스간 통신 지원포트 번호는 전송계층에서 종단간 종단간 주소를 지원프로세스를 구분할 때 구분자를 제공해준다다중화/역다중화 지원 참고)0~65535 까지 할당이 가능하다0~1023은 잘 알려진 포트로, 사용하지 않는 것이 좋음UDPUser Datagram ProtocolUDP는 비연결, 비신뢰적 전송 프로토콜최소한의 오버헤드를 가지는 단순 프로토콜User Datagramcf) TCP : segment, UDP : datagramUDP 패킷 (데이터그램)은 8바이트..

[컴퓨터네트워크] 09. 전송계층(2)

전송 계층Go-Back-N 프로토콜(GBN)전송 효율을 높이기 위해서는 Ack를 받기전에 여러 패킷을 보낼 필요가 있다Ack를 받기 전에 미처리 (outstanding) 패킷의 수를 1 이상으로 유지하여 채널을 바쁘게(busy) 함cf) Stop and Wait 프로토콜 : 패킷 1개 주고, 1개 받음       !! Go-Back-N의 경우 Send window 크기가 2^m보다 작아야 한다Example 8.7그림 8.29(다음페이지)는 Go-Back-N의 예를 보여준다.이 예는 순방향 채널이 신뢰할 만하고, 역방향은 그렇지 않은(신뢰적이지 않은) 경우임.데이터 패킷은 유실되지 않은데, 몇몇 ACK는 지연되거나 유실되는 환경이다.이 예는 또한 한꺼번에 확인응답하는 방법은 응답이 늦거나 유실될 경우에 유..

[컴퓨터네트워크] 08. 전송계층(1)

전송계층전송계층 소개Process-to-process 통신 지원Local hostremote host논리 연결(logical connection)을 통해 통신 지원전송계층 서비스에플리케이션 계층에게 서비스 제공네트워크 계층의 서비스 이용    Ex 8.1유닉스에서 well-known 포트는 /etc/services(유닉스, 리눅스) 파일에 저장되어 있다. Grep 명령을 통해 찾는 정보가 있는 라인을 추출할 수 있다.$grep tftp/etc/servicestftp 69/tcptftp 69/udptcp와 udp에서 69번을 사용한다SNMP는 2개(161, 162)의 포트 번호를 다른 용도로 사용한다$grep snmp/etc/servicessnmp161/tcp#Simple Net Mgmt Protosnmp..

[컴퓨터 네트워크] 07. IPv6(차세대 IP)

IPv6 IPv6 주소 IPv6로의 전환의 주된 이유는 주소공간 부족 IPv6의 거대한 주소 공간은 주소 고갈의 문제 해결 IPv6 조소는 128 비트 (16 바이트 (옥텟)) IPv4의 4배 길이 표현 128 비트를 컴퓨터는 쉽게 저장하지만, 인간은 다루기 쉽지 않다 바이너리 표기법과 16진 표기법 (Coloned Hexadecimal) 32개의 16진수를 4개씩 끊어서 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 이런식으로 적는다 주소공간 IPv6의 주소 개수는 2^128 개 주소 고갈 문제 해결 IPv4 주소(43억 개)의 296 배 (1028배) 3.4x10^34 개 주소 공간 할당 IPv6의 주소공간은 가변길이의 여러 블럭으로 분할하고, 각 공간은 특수 목적으로 사용 ..

[컴퓨터네트워크] 06. 멀티캐스트 라우팅(Multicast Routing)

멀티캐스트 라우팅(Multicast Routing) Introduction 현재의 인터넷은 유니캐스트만 있는 것이 아님 멀티캐스트 통신이 급증하는 추세임 Unicasting, Multicasting, and Broadcasting 기본 개념 멀티캐스트 라우팅 프로토콜 소개 cf) 유니캐스팅 하나의 소스, 하나의 목적지 One-to-One 경로상의 라우터는 한 출구 인터페이스로 하나의 패킷만 포워딩 멀티캐스팅 하나의 소스(source), 여러 목적지(destination) One to many 소스 주소는 unicast 주소, 목적지 주소는 그룹 주소 이 그룹 주소에 가입(join)한 모든 장치들이 데이터를 받을 수 있습니다. 그룹 주소는 그룹의 멤버를 지정 D 클래스 주소는 네트워크상의 특정 멀티캐스트 ..