본문 바로가기

Computer Science/컴퓨터 네트워크18

컴퓨터 네트워크: IPv4 Address - Special Addresses, NAT IPv4 Address 4. Special Addresses classful addressing에서 일부 주소는 특수 목적을 위해 예약되어 있었다. classless addressing 체계는 classful addressing에서 이러한 특수 주소 중 일부를 상속한다. All-zero address 고정 IP 컴퓨터를 껐다 켜도 IP가 바뀌지 않는 것. 사이트 운영 시 사용. ex) 네이버, 다음, 쿠팡, 11번가, 개인쇼핑몰 등... 유동 IP 일반 가정집에서 사용하는 모든 IP. 컴퓨터 부팅 시 마다 누군가에게 할당받아야 함. Dynamic Host Configuration Protocol(DHCP) 클라이언트는 네트워크 부팅과정에서 DHCP 서버에 IP주소를 요청하고 DHCP는 클라이언트에게 동적.. 2021. 12. 2.
컴퓨터 네트워크: IPv4 Address - Classless Addressing(2) IPv4 Address 3. Classless Addressing Variable –Length Blocks Two-Level Addressing Block Allocation Subnetting Example 5.33 (각 subnet의 크기가 다른 경우) 조직에 시작 주소가 14.24.74.0/24인 주소 블록이 부여된다. 조직은 아래와 같이 3개의 subnet에서 사용할 3개의 주소 subblock을 필요로 한다. ■ 120개 주소의 subblock 한 개 ■ 60개 주소의 subblock 한 개 ■ 10개 주소의 subblock 한 개 답 이 블록에는 2^(32 - 24) = 256개의 주소가 있다. 첫 번째 주소는 14.24.74.0/24이고 마지막 주소는 14.24.74.255/24이다. *서.. 2021. 12. 2.
컴퓨터 네트워크: IPv4 Address - Classless Addressing(1) IPv4 Address 3. Classless Addressing Variable –Length Blocks Two-Level Addressing Block Allocation Subnetting Variable-length blocks in classless addressing classless addressing에서는 클래스라는 단위 자체가 없어졌기 때문에 블록의 크기도 유동적이다. Prefix and suffix classless addressing에서 prefix는 network를, suffix는 host를 정의한다. classless addressing에서 prefix 길이는 1~32 사이이다. Example 5.22 전체 인터넷이 4,294,967,296개의 주소를 가진 하나의 블록으로 간주될.. 2021. 12. 2.
컴퓨터 네트워크: IPv4 Address - Classful Addressing IPv4 Address 2. Classful Addressing IP주소(or 인터넷 주소): TCP/IP 프로토콜의 IP layer에서 인터넷에 연결된 각 장치를 식별하기 위해 사용되는 식별자. IPv4 주소: 32bits. 전세계에 하나분인 유일한 주소. 2^32(약 40억)개의 IP주소가 존재. Occupation of address space 2^32 = 약 40억개 주소 존재Class A: 2^31, 약 20억개 , 50% Class B: 2^30, 약 10억개 , 25% Class C: 2^29, 약 5억개 , 12.5% ...(생략) Finding the class of address Q1. 주어진 주소에 대한 Class 찾기 a. 00000001 00001011 00001011 111011.. 2021. 12. 1.
컴퓨터 네트워크: IPv4 Address - Introduction IPv4 Address 1. Introduction IP주소(or 인터넷 주소): TCP/IP 프로토콜의 IP layer에서 인터넷에 연결된 각 장치를 식별하기 위해 사용되는 식별자. IPv4 주소: 32bits. 전세계에 하나분인 유일한 주소. 2^32(약 40억)개의 IP주소가 존재. Dotted-decimal notation 원래 IP주소는 binary 형태의 32bits짜리 숫자이다. 의사소통을 원활하게 하기 위해 이를 byte단위로 끊어 10진법으로 표현하여 사용한다. 2진법 ↔ 10진법 Example 5.1 IPv4 주소 binary 표기법 → dotted-decimal 표기법 a. 10000001 00001011 00001011 11101111 ☞8bit가 다 1이면 255 b. 110000.. 2021. 11. 27.
컴퓨터 네트워크: Options TCP: Transmission Control Protocol 11. Options TCP 헤더에는 최대 40바이트의 optional information이 포함될 수 있다(옵션을 안 쓴 기본 헤더는 20바이트. 따라서 헤더는 20 - 60바이트). 옵션은 대상에 추가 정보를 전달하거나 다른 옵션을 정렬한다. 우리는 크기에 따라 single-byte options과 multiple-byte options 두 가지 범주의 옵션을 정의할 수 있다. Options single-byte options ☞ 아무 일도 안 함 end of option list no operation multiple-byte options maximum segment size window scale factor timestamp SA.. 2021. 11. 27.
컴퓨터 네트워크: TCP timers TCP: Transmission Control Protocol 10. TCP timers TCP timers Retransmission timer: 재전송 타이머, time-out detect 시 사용, packet loss를 detect하면 slow start로 들어감 Persistence timer: 영속 타이머 Keepalive timer TIME-WAIT Retransmission timer time-out detect 시 사용 Persistence timer Lost acknowledgments가 적절히 처리되지 않은 경우 deadlock이 발생할 수 있다. Receiver가 rwnd=0을 보내 Sender가 데이터 송신을 멈춘 상황. Receiving Buffer에 MSS만큼의 공간이 생기거나.. 2021. 11. 11.
컴퓨터 네트워크 실습 소켓 생성 (전화기 생성) #include int socket(int domain, int type, int protocol); 성공 시 파일 스크립터, 실패 시 -1 반환 소켓의 주소 할당 및 연결 (전화기에 번호 부여) #include int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen); sockfd: 소켓번호 struct sockaddr *myaddr: 주소(ip, port) 구조체 성공 시 0, 실패 시 -1 반환 연결요청이 가능한 상태로 변경 (전화 받기 가능) #include int listen(int sockfd, int backlog); 일반 소켓을 서버소켓으로 바꿔줌. 일반 소켓은 걸 수만 있고 받을 수는 없음. listen.. 2021. 10. 16.
컴퓨터 네트워크: Congestion Control TCP: Transmission Control Protocol 9. Congestion Control Congestion 링크가 보낼 수 있는 Maximum 값이 100Mbps인 상황에서 TCP connection 1, 2에서 각각 100Mbps, 총 200Mbps가 들어오면 Congestion 발생 Packet delay and network load Delay 데이터 처리 속도가 얼마나 지연되는지 Load 데이터가 얼마나 들어가는지 input의 합이 100Mbps에 가깝게 되면 delay갑자기 증가 Throughput versus network load Throughput (=receiving rate) 데이터를 얼마나 빠르게 받고 있는지 Load 데이터가 얼마나 들어가는지 ex. 50Mbits 데이.. 2021. 10. 14.
컴퓨터 네트워크: Error Control TCP: Transmission Control Protocol 8. Error Control Error Control TCP는 신뢰할 수 있는 transport layer 프로토콜이다. 즉, TCP로 데이터 스트림을 전송하는 응용 프로그램은 TCP에 의존해 전체 스트림을 반대쪽 끝에 있는 응용 프로그램에 오류 없이 순서대로 전달할 수 있다. TCP의 Error Control(오류 제어)는 checksum, acknowledgment, and time-out의 세 가지 tool을 사용하여 수행된다. 알아두기 ACK에 대한 ACK은 존재하지 않는다. 즉, 내가 보낸 ACK을 상대방이 잘 받았는지 확인하는 ACK은 존재하지 않는다. 데이터는 순서가 잘못된 상태로 도착하여 receiving TCP에 의해 일시적.. 2021. 10. 7.
컴퓨터 네트워크: Flow Control TCP: Transmission Control Protocol 7. Flow Control Flow Control 생산자가 데이터를 생성하는 속도와 소비자가 데이터를 사용할 수 있는 속도의 균형을 유지. sliding window Send window in TCP Sender는 Receiver가 Ack을 보내면서 알려준 rwnd 값을 통해 상대방 버퍼의 빈 공간을 파악하고, 그 빈 공간만큼을 Send window 사이즈로 정한다. window 사이즈는 Receiver가 한번에 받을 수 있는 데이터의 양이다. 데이터 전송 후, 보낸 데이터는 데이터 전송 오류를 대비하여 여전히 Sending Buffer에 남겨둔다. 상대방이 Ack을 보내 해당 데이터를 잘 받았다는 표시를 하면 해당 데이터를 Sending .. 2021. 10. 5.
컴퓨터 네트워크: Windows in TCP TCP: Transmission Control Protocol 6. Windows in TCP stop & wait 방식 데이터 전송할 때마다 잘 받았는지 확인 신뢰성 보장 위한 가장 쉬운 접근 방식 데이터 전송을 화물 트럭으로 비유해 보자. 화물트럭 5대는 서울에서 출발해 부산에 화물을 운반 후 다시 서울로 돌아와 화물이 안전하게 도착했음을 보고해야 한다. stop & wait는 하나의 트럭이 서울-부산을 왕복해서 돌아온 후에 다음 번 트럭이 운행을 시작하는 방식이다. 서울에서 부산까지 왕복으로 10시간이 걸리기 때문에, 트럭 5대가 부산에 화물을 모두 운반하기까지는 50시간이 걸린다. 이는 매우 비효율적이다. 이러한 비효율성을 해결하기 위해 한꺼번에 트럭을 여러 대 보낼 수는 없을까?트럭을 여러 대 .. 2021. 10. 1.
반응형