📍Certificate/Engineer Information Processing

[정보처리기사] - [4과목] 오답정리 (1)

Sun A 2024. 7. 6. 11:00

C언어 문자열 처리 함수의 서식과 기능 연결

  • strlen(s) - s의 길이를 구한다.
    • length의 약자
  • strcpy(s1, s2) - s2를 s1으로 복사한다.
    • copy의 약자
  • strcmp(s1, s2) - s1과 s2를 비교한다.
    • compare의 약자
  • strrev(s) - s를 거꾸로 변환한다.
    • reverse의 약자

 

C언어 프로그램 실행 결과 해석

[문제 1]

#include <stdio.h>
int main(int argc, char *argv[]) {
    int a=5, b=3, c=12;
    int t1, t2, t3;
    t1=a && b;
    t2=a || b;
    t3=!c;
    printf(\"%d, t1+t2+t3);
    return 0;
}
  • 논리 연산자 t1, t2, t3를 알아야 한다.
t1 = a && b;
# 논리 and 연산자를 &&를 사용한다. 
# a와 b가 모두 참(0이 아닌 값을 의미)일 경우 '1', 그렇지 않으면 '0' 반환

t2 = a || b
# 논리 OR 연산자 '||'를 사용한다.
# a와 b중 하나라도 참일 경우 '1', 둘 다 거짓일 경우'0'
 
t3 = !c;
#논리 not 연산자 '!'를 사용
# c가 참이면 '0', 아니면 '1'

t1 + t2 + t3 = 1 + 1 + 0 = 2

 

[문제 2]

#include <stdio.h>
struct st{
    int a;
    int c[10];
};

int main (int argc, char *argv[]) {
    int i=0;
    struct st ob1;
    struct st ob2;
    ob1.a=0;
    ob2.a=0;

    for(i=0; i<10; i++) {
        ob1.c[i]=i;
        ob2.c[i]=ob1.c[i]+i;
    }

    for(i=0; i<10; i=i+2) {
        ob1.a=ob1.a+ob1.c[i];
        ob2.a=ob2.a+ob2.c[i];
    }

    printf(\"%d\", ob1.a+ob2.a);
    return 0;
}
index ob1.c ob2.c ob1.a ob2.a
0 0 0 0+0=0 0+0=0
1 1 2    
2 2 4 0+2=2 0+4=4
3 3 6    
4 4 8 2+4=6 4+8=12
5 5 10    
6 6 12 6+6=12 12+12=24
7 7 14    
8 8 16 12+8=20 24+16=40
9 9 18    

(ob1.a = 20) + (ob2.a = 40) = 60

 

TCP/IP

  • 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜이다.

TCP (Transmission Control Protocol)

  • OSI 7계층의 전송 계층에 해당한다.
  • 스트림(Stream) 전송 기능을 제공한다.
  • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공한다.
  • 신뢰성 있는 연결형 서비스를 제공한다.
  • 요청과 응답을 동시에 주고 받는 전이중 연결 방식을 사용한다.
  • 순서 제어, 오류 제어, 흐름 제어 기능을 제공한다.
  • 투명성이 보장되는 통신을 제공한다.

IP (Internet Protocol)

  • Header Length는 IP 프로토콜의 헤더 길이를 32비트 워드 단위로 표시한다.
  • Time To Live는 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 지정한 것이다.
  • Version Number는 IP 프로토콜의 버전번호를 나타낸다.
  • OSI 7계층의 네트워크 계층에 해당한다.
  • 데이터그램을 기반으로 하는 비연결형 서비스를 제공한다.
  • 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공한다.

 

RIP 라우팅 프로토콜

RIP (Routing Information Protocol)

  • 경로 선택 메트릭은 홉 카운트(hop count)이다.
  • 최단 경로 탐색에 Bellman-Ford 알고리즘을 사용한다.
  • 각 라우터는 이웃 라우터들로부터 수신한 정보를 이용하여 라우팅 표를 갱신한다.

 

프로토콜

ICMP (Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)

IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역할을 하며, 헤더는 8Byte로 구성됨

IGMP (Internet Group Management Protocol, 인터넷 그룹 관리 프로토콜)

: 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용됨

SNMP (Simple Network Management Protocol)

: TCP/IP의 네트워크 관리 프로토콜로 라우터나 허브 등 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는 데 사용되는 표준 통신 규약

 

IPv6 (Internet Protocol version6)

  • 현재 사용되고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되었다.
  • 16비트씩 8부분, 총 128비트로 구성되어 있다.
  • 각 부분을 16진수로 표현하고, 콜론(:)으로 구분하다.
  • 패킷 헤더는 40옥텟(octet)의 고정된 길이를 갖는다.
  • IPv4에 비해 자료 전송 속도가 빠르고, IPv4와 호환성이 뛰어나다.
  • 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있다.