Principles of reliable data transfer (신뢰성 있는 데이터 전송의 원칙) 신뢰성 있는 데이터 전송 = reliable data transfer = rdt 신뢰성 없는 채널의 특성(손실, 오염, 재정렬 등)에 따라 신뢰성 있는 transfer protocol의 복잡도가 영향을 받는다. 송신자와 수신자는 서로의 상태를 모르기에 메시지가 수신됐는지 알 수 없다. rdt_send() : 애플리케이션 계층 등 상위 레이어에서 호출됨. 전송할 데이터를 수신 측 상위 레이어에 전달 udt_send() : rdt에서 호출되어 불안정한 채널을 통해 패킷을 수신측에 전송 rdt_rcv() : 수신측 채널에서 패킷이 도착했을 때 호출됨 deliver_data() : rdt에서 호출되어 상위 레이..
분류 전체보기
UDP: User Datagram Protocol 간소화된(no frills), 최소한의(bare bones) 기능만 제공하는 internet transport protocol best-effort 방식을 사용하기에, 손실 또는 순서가 바뀌는 상황이 발생할 수 있다. connectionless: - UDP sender/receiver 간의 handshaking이 없다. - 각각의 UDP 세그먼트는 다른 세그먼트와 독립적이다. UDP를 왜 사용할까 - 연결 설정이 없음(RTT 지연이 추가되지 않음) - 송신자 및 수신자에 연결 상태가 없어서 간단함 - 헤더 크기가 작음 - 혼잡 제어(congestion control)이 없음 - * 빠르게 전송 가능하고, 혼잡이 발생해도 동작할 수 있다. 신뢰성이 필요한 ..
multiplexing at sender : 여러 소켓으로부터 데이터를 받고, 전송 헤더를 추가함. demultiplexing at receiver : 헤더 정보를 사용해서 수신된 세그먼트를 올바른 소켓에 전달함. demultiplexing 호스트는 IP 데이터그램을 receive한다. - 각 데이터그램은 송신지(source) IP주소와 목적지(destination) IP주소를 가진다. - 각 데이터그램은 한 개의 전송 계층 세그먼트를 전송한다. - 각 세그먼트는 송신지, 목적지 포트번호를 가진다. 호스트는 IP주소와 포트번호를 사용해서 세그먼트를 적절한 소켓으로 전달한다. receiving host가 UDP segment를 수신하면, 세그먼트의 목적지 포트 번호를 확인하고 해당 포트 번호를 갖는 소켓으..
Transport-layer services and protocols 서로 다른 호스트에서 실행중인 애플리케이션 프로세스간에 논리적인 통신(logical communication)을 제공 transport protocols은 end system에서 실행된다. - sender : 애플리케이션 메시지를 세그먼트로 분할해서 네트워크 계층에 전달 - receiver : 세그먼트를 메시지로 재조립해서 애플리케이션 계층에 전달 인터넷 애플리케이션에서 사용가능한 transport protocols : TCP / UDP network layer는 호스트 간의 논리적인 통신임에 반해 transport layer는 프로세스 간의 논리적인 통신이다. network layer service에 의존하고 이를 향상시킨다. sen..
Multimedia: video video : 일정한 속도로 표시되는 image sequence digital image : array of pixels, 각각의 픽셀은 비트로 표시됨 coding: 이미지를 인코딩하는데 사용되는 비트 수를 감소시키기 위해 이미지 내부 및 이미지 간 중복성 활용함 - spatial(공간적, 이미지 내부에서) - temporal(시간적, 한 이미지에서 다음으로) CBR(constant bit rate): 비디오 인코딩 속도를 고정시킨다. VBR(variable bit rate): 공간적 및 시간적 코딩 양에 따라 비디오 인코딩 속도가 변경된다. Streaming stored video 서버-클라이언트 대역폭(bandwidth)은 네트워크 혼잡 수준(network conges..
Peer-to-peer architecture 서버가 항상 켜져있지 않음 임의의 end-systems가 직접 통신한다. 다른 피어에게서 서비스를 요청하고, 다른 피어에게 서비스를 제공한다. - 자체 확장성(self scalability): 새로운 피어는 새로운 service capacity와 새로운 service demands(수요)를 가져옴 피어는 간헐적으로 연결되고 ip주소가 변경된다. - 관리하기 복잡하다 File distribution: client-server vs P2P 크기 F의 파일을 한 서버에서 N개의 피어로 분산하는 데 필요한 시간은?? - 피어의 업로드/다운로드 용량은 제한된 리소스이다. client-server에서, server transmission : 순차적(sequentiall..
Internet hosts, routers: - IP address (32bit) - 데이터그램에 대한 주소 지정에 사용된다. DNS 많은 name servers의 계층 구조로 구현된 분산 데이터베이스(distributed database) application-layer protocol : 호스트, DNS 서버가 이름 (address / name translation)을 해결하기 위해 통신한다. 중요한 인터넷 기능으로, application-layer protocol로 구현된다. 네트워크의 edge에서 complexity가 있다. DNS services - 호스트 이름에서 IP 주소로 변환 - 호스트 별칭(aliasing) : 정식(canonical) 및 별칭(alias) 이름 - 메일 서버 별칭 - ..
E-mail 세가지 주요 구성 요소가 있다. - user agents, mail servers, SMTP (simple mail transfer protocol) User Agents? mail reader라고도 하며, 이메일 메시지를 작성하고 편집하고 읽는다. outgoing, incoming(발신/수신) 메시지는 서버에 저장된다. mail server? 사용자를 위한 incoming messages를 포함하는 mailbox outgoing할 mail messages의 message queue SMTP protocol? 메일 서버 간에 email message를 보내기 위함. client : 메일 발송 서버server : 메일 수신 서버 SMTP RFC 클라이언트에서 서버로 이메일을 신뢰성 있게 전송하..